Ответ 1
Мне что-то не хватает или вам просто нужно установить для свойства FontWeight значение "Bold"?
<TextBlock FontWeight="Bold" Text="{Binding Foo}" />
У меня есть элемент управления TextBlock с привязкой к базе данных (который используется внутри DataTemplate для отображения элементов в ListBox), и я хочу сделать весь текст в элементе управления полужирным. Кажется, я не могу найти свойство в проводнике свойств, чтобы весь текст был выделен жирным шрифтом, и все, что я могу найти в Интернете, - это использование тега <Bold>
внутри TextBlock, но я не могу использовать это как данные поступают непосредственно из источника данных.
Должен быть способ сделать это, но как? Я очень неопытен в WPF, поэтому я не знаю, где искать.
Мне что-то не хватает или вам просто нужно установить для свойства FontWeight значение "Bold"?
<TextBlock FontWeight="Bold" Text="{Binding Foo}" />
Вместо того, чтобы просто иметь TextBlock, попробуйте следующее:
<TextBlock>
<Bold>
<Run />
</Bold>
</TextBlock>
Затем вместо этого привязайте привязку к Run.TextProperty.
Вы говорите, что данные поступают непосредственно из источника данных; возможно ли разместить перед ним слой абстракции? Его довольно распространенный способ создать представление для того, что вы показываете, и иметь представление, связывающееся с данными. Наиболее распространенной реализацией этой идеи является Model View View-Model (MVVM). Читайте об этом в Интернете.
У вас может быть свойство DisplayText, связанное с текстовым полем, и это просто "getter", который обертывает основной текст. Он может обнаружить, что текст уже завернут, а если нет, заверните его.
Eg.
public class TestView {
private Test datasource;
public TestView(Test source)
{
this.datasource = source;
}
public string DisplayText {
get {
if (datasource.Text.Contains("<bold>")==false) {
return "<bold>" + datasource.Text + "</bold>";
}
return datasource.Text;
}
}
}
Затем привяжите к представлению вместо прямого объекта.