如何在WPF中设置样式ListBox项?

时间:2017-06-26 09:26:41

标签: wpf listbox styles

我的XAML代码是:<ListBox Name="Seq"><TextBlock Name="txt1" Text="Hello"/></ListBox>
代码隐藏将是:Seq.Style = ...;txt1.Style=...;
我想制作一些绿色,粗体和斜体的物品。我该怎么办?感谢。

2 个答案:

答案 0 :(得分:0)

您真正应该做的是将ItemsSource的{​​{1}}属性绑定到ListBox,然后将属性添加到您可以绑定到的类型IEnumerable<T>中一个T,例如:

ItemTemplate

作为快速修复,您可以在XAML标记中定义<ListBox Name="Seq"> <ListBox.ItemTemplate> <DataTemplate> <TextBlock x:Name="txt1" Text="{Binding TextProperty}" /> <DataTemplate.Triggers> <DataTrigger Binding="{Binding SomeOtherProperty}" Value="SomeValue"> <Setter TargetName="txt1" Property="Foreground" Value="Green" /> </DataTrigger> </DataTemplate.Triggers> </DataTemplate> </ListBox.ItemTemplate> </ListBox> 样式:

TextBlock

...并以编程方式设置<ListBox Name="Seq"> <ListBox.Resources> <Style x:Key="style" TargetType="TextBlock"> <Setter Property="Foreground" Value="Green" /> <Setter Property="FontWeight" Value="Bold" /> <Setter Property="FontStyle" Value="Italic" /> </Style> </ListBox.Resources> <TextBlock Name="txt1" Text="Hello"/> </ListBox> 的{​​{1}}属性:

Style

...或直接在XAML标记中:

TextBlock

答案 1 :(得分:0)

您可以根据需要在App.xaml中添加样式,例如:

<Style TargetType="TextBlock" x:Key="mystyle">
    <Setter Property="Foreground" Value="Green"></Setter>
    <Setter Property="FontStyle" Value="Italic"></Setter>
    <Setter Property="FontWeight" Value="Bold"></Setter>
</Style>

然后您可以将该样式应用于列表框的文本块,如下所示:

this.txt1.Style = (Style)Application.Current.FindResource("mystyle");