【发布时间】:2017-06-25 04:09:55
【问题描述】:
如何获取 WPF 控件中文本的默认颜色?我正在对前景颜色画笔进行数据绑定,并且只希望能够在特定条件下更改颜色。
一个简单的例子是当第二列的值为 7 时将单元格着色为红色。如果我不知道文本的默认颜色,它与其他单元格略有不同。在下图中,默认画笔是蓝色的。我使用Bushes.Black 作为非 7 值。
数据绑定行的C#代码是
public Brush brush
{
get
{
if (data2 == 7)
return Brushes.Red;
return Brushes.Black;
}
}
XAML 代码如下。
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<ListView Grid.Row="0" Grid.Column="0" Margin="10,20,10,10" ItemsSource="{Binding data}"
Name="DataList">
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn Width="150" DisplayMemberBinding="{Binding Path=data1}">
<GridViewColumn.Header>
<GridViewColumnHeader Tag="Data1">
<TextBlock>Data 1</TextBlock>
</GridViewColumnHeader>
</GridViewColumn.Header>
</GridViewColumn>
<GridViewColumn Width="150">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock x:Name="Txt2" Text="{Binding data2}" Foreground="{Binding brush}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
<GridViewColumn.Header>
<GridViewColumnHeader Tag="Data2">
<TextBlock>Data 2</TextBlock>
</GridViewColumnHeader>
</GridViewColumn.Header>
</GridViewColumn>
<GridViewColumn Width="150" DisplayMemberBinding="{Binding Path=data3}">
<GridViewColumn.Header>
<GridViewColumnHeader Tag="Data3">
<TextBlock>Data 3</TextBlock>
</GridViewColumnHeader>
</GridViewColumn.Header>
</GridViewColumn>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
</Grid>
【问题讨论】: