Я добавляю некоторые элементы TextBlock
к Border
элементам в StackPanel
. Я добавляю и формирую текст TextBlock
, добавляя Inlines
.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». Как вы можете видеть, я могу добраться до полужирного текста, но как я могу его вывести?
Я думаю, что встраивает действительны только непосредственно в XAML. Вы можете создавать InLines в конвертере, но это грязно. Вы можете сделать FlowDocument в средстве просмотра FlowDocument. – Paparazzi
Чтобы четко понять ваше требование, скажите, пожалуйста, что вы хотите получить Жирный текст (Hello) на Border_Clicked событии, правильно? – Davy
Не можете ли вы просто установить свойство 'FontWeight' в соответствии с [этим ответом] (http://stackoverflow.com/a/5263094/1997232)? Что-то вроде 'myText.Inlines.Add (новый Run (« Полужирный текст ») {FontWeight = FontWeight.Bold});' – Sinatr