将值从xaml页面后面的代码转移到更改扩展器的前台

本文关键字:扩展器 前台 转移 代码 xaml | 更新日期: 2023-09-27 18:11:36

<Expander x:Name="exp" 
          IsExpanded="True"
          Background= "White"
          Foreground="Black">
    <Expander.Header>
        <TextBlock Text="{Binding Name}" />
    </Expander.Header>
        <ItemsPresenter />
</Expander>

我想改变前景值从c#代码背后的基础上的一个if条件。我如何从代码后面转移到xaml页面访问它的值?

将值从xaml页面后面的代码转移到更改扩展器的前台

Code Behind

exp.Foreground = new SolidColorBrush(Color.Red);

exp.Foreground = Brushes.Blue;

exp.Foreground = new SolidColorBrush(Color.FromArgb(0xFF, 0xFF, 0, 0);

exp.Foreground = System.Windows.SystemColors.ControlLightColor;

如果将来有人需要这个,我已经使用触发器完成了:

        <Style TargetType="DataGridCell">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Path=Result}" Value="F">
                    <Setter Property="Foreground" Value="Red" />
                    <Setter Property="FontWeight" Value="DemiBold" />
            </DataTrigger>
            </Style.Triggers>
        </Style>

当Result = "F"时,这将改变整个数据网格行前景。