Wpf 如何以编程方式设置样式
我有以下风格,但我需要以编程方式进行:Wpf 如何以编程方式设置样式,wpf,Wpf,我有以下风格,但我需要以编程方式进行: <xcdg:DataGridControl MinHeight="300" Name="listViewUnallocated" ItemsSource="{Binding Source={StaticResource cvs_unallocatedTerminals}}"
<xcdg:DataGridControl MinHeight="300"
Name="listViewUnallocated"
ItemsSource="{Binding Source={StaticResource
cvs_unallocatedTerminals}}"
AllowDrop="True"
Drop="Grid_Drop"
MouseMove="Grid_MouseMove"
KeyUp="listViewUnallocated_KeyUp"
MouseDoubleClick="gridUnallocated_MouseDoubleClick"
ReadOnly="True"
DockPanel.Dock="Top">
<xcdg:DataGridControl.Resources>
<Style TargetType="{x:Type xcdg:DataRow}" x:Name="selectedStyleTrigger">
<Style.Triggers>
<DataTrigger Binding="{Binding TerminalId}" Value="72948028">
<Setter Property="Background" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
</xcdg:DataGridControl.Resources>
在控件的代码隐藏文件中,尝试:
this.Style = Resources["ResourceName"] as Style;
在XAML和代码隐藏使用中设置
x:Key
:
something.Style = (Style) FindResource("YourResourceKey");
嗨,我们可以像这样通过编程设置样式
Style rowStyle = new Style(typeof(DataGridRow));
DataTrigger dataTrigger = new DataTrigger("TerminalId");
Binding binding = new Binding();
dataTrigger.Binding = binding;
dataTrigger.Value = 72948028;
Setter setter = new Setter(DataGridRow.BackgroundProperty, Brushes.Red);
dataTrigger.Setters.Add(setter);
rowStyle.Triggers.Add(dataTrigger);
listViewUnallocated.RowStyle = rowStyle;
FindResource(“ResourceName”)和Resources[“ResourceName”]之间有什么区别?有了它,我无法在窗口的构造函数中找到样式,但有了
FindResource
方法,我可以找到。(这是一个抽象类,在多个地方继承,没有定义XAML。)我认为这样做不是个好主意。如果真的要这样做,那么我至少会在XAML文件中添加一条注释,如:
。否则,我将完全在代码隐藏中实现它。