从 xaml 页面后面的代码转移值以更改扩展器前景
Transfer value from code behind in xaml page to change expander foreground
<Expander x:Name="exp"
IsExpanded="True"
Background= "White"
Foreground="Black">
<Expander.Header>
<TextBlock Text="{Binding Name}" />
</Expander.Header>
<ItemsPresenter />
</Expander>
我想根据 if 条件从后面的 C# 代码更改前景值。我如何从后面的代码传输值以在 xaml 页面中访问它?
后面的代码将是
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>
这将在结果 = "F" 时更改整个数据网格行的前景。
<Expander x:Name="exp"
IsExpanded="True"
Background= "White"
Foreground="Black">
<Expander.Header>
<TextBlock Text="{Binding Name}" />
</Expander.Header>
<ItemsPresenter />
</Expander>
我想根据 if 条件从后面的 C# 代码更改前景值。我如何从后面的代码传输值以在 xaml 页面中访问它?
后面的代码将是
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>
这将在结果 = "F" 时更改整个数据网格行的前景。