Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在WPF中进行数据绑定时,将TextBlock设置为完全粗体_C#_.net_Wpf_Xaml_Textblock - Fatal编程技术网

C# 在WPF中进行数据绑定时,将TextBlock设置为完全粗体

C# 在WPF中进行数据绑定时,将TextBlock设置为完全粗体,c#,.net,wpf,xaml,textblock,C#,.net,Wpf,Xaml,Textblock,我有一个数据绑定TextBlock控件(在DataTemplate中用于显示列表框中的项目),我希望将控件中的所有文本都加粗。我似乎无法在properties explorer中找到一个属性来将整个文本设置为粗体,我在网上只能找到在TextBlock中使用标记,但我无法将其放入,因为数据直接来自数据源 一定有办法做到这一点——但如何做到呢?我对WPF非常缺乏经验,所以我真的不知道去哪里找。你说数据直接来自数据源;有可能在它前面放置一层抽象层吗?为正在显示的内容创建一个视图,并让视图与数据通信,这

我有一个数据绑定TextBlock控件(在DataTemplate中用于显示列表框中的项目),我希望将控件中的所有文本都加粗。我似乎无法在properties explorer中找到一个属性来将整个文本设置为粗体,我在网上只能找到在TextBlock中使用
标记,但我无法将其放入,因为数据直接来自数据源


一定有办法做到这一点——但如何做到呢?我对WPF非常缺乏经验,所以我真的不知道去哪里找。

你说数据直接来自数据源;有可能在它前面放置一层抽象层吗?为正在显示的内容创建一个视图,并让视图与数据通信,这是很常见的。这种思想最常见的实现是模型-视图-模型(MVVM)。在网上读一读

您可能有一个绑定到textbox的“DisplayText”属性,它只是一个包装底层文本的“getter”。它可以检测文本是否已包装,如果未包装,则将其包装

例如

公共类TestView{
私有测试数据源;
公共测试视图(测试源)
{ 
this.datasource=source;
}
公共字符串显示文本{
得到{
if(datasource.Text.Contains(“”==false){
返回“+datasource.Text+”;
}
返回datasource.Text;
}
}
}

然后,绑定到视图,而不是直接绑定到对象。

尝试以下操作,而不仅仅是使用文本块:

<TextBlock>
  <Bold>
    <Run />
  </Bold>
</TextBlock>


然后改为将数据绑定到Run.TextProperty。

是我遗漏了什么,还是您只需要将FontWeight属性设置为“粗体”



谢谢!这很有效。然而,同样的事情不适用于斜体字。有没有类似的简单方法来做斜体字?当然有!丰特风格。请参见,虽然最初的问题询问如何将整个块设置为粗体,但如果您希望文本的特定部分为粗体,则这非常有用—假设元素是可以绑定到的单独项目。
<TextBlock>
  <Bold>
    <Run />
  </Bold>
</TextBlock>
<TextBlock FontWeight="Bold" Text="{Binding Foo}" />