Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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
Wpf 如何以编程方式设置样式_Wpf - Fatal编程技术网

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文件中添加一条注释,如:
。否则,我将完全在代码隐藏中实现它。