にBorder
の要素にいくつかのTextBlock
要素を追加しています。 Inlines
を追加して、TextBlock
のテキストを追加して整形しています。WPF C# - TextBlockからインライン形式のテキストを取得
クリックすると、TextBlock
の形式のテキストを取得したいと思います。これは私のコードです。
public void addText()
{
TextBlock myText = new TextBlock();
myText.Inlines.Add(new Bold(new Run("Hello ")));
myText.Inlines.Add("World!");
Border myBorder = new Border();
myBorder.Child = myText;
myBorder.MouseDown += new MouseButtonEventHandler(Border_Clicked);
myStackPanel.Children.Add(myBorder);
}
private void Border_Clicked(object sender, MouseButtonEventArgs e)
{
//Border senderBox = (Border)sender;
//TextBlock senderText = (TextBlock)senderBox.Child;
//Bold inline = (Bold) senderText.Inlines.ElementAt(0);
// How to Output "Hello "?
}
Border_Clicked
は、「Hello」を出力する必要があります。あなたが見ることができるように、私は太字のテキストに到達することができますが、どうすればそれを出すことができますか?
です。コンバータでInLineを作成することはできますが、面倒です。 FlowDocumentビューアでFlowDocumentを実行できます。 – Paparazzi
あなたの要件をはっきりと理解するには、Border_ClickedイベントでBoldテキスト(Hello)を取得したいと教えてください。 – Davy
[この回答](http://stackoverflow.com/a/5263094/1997232)に従って、単に 'FontWeight'プロパティを設定できませんか? 'myText.Inlines.Add(new Run(" Bold text "){FontWeight = FontWeight.Bold}); ' – Sinatr