WPFコントロールのテキストの既定の色を取得するにはどうすればよいですか?私はフォアグラウンドカラーブラシをデータバインディングしていて、特定の条件下で色を変更できるようにしたいだけです。WPFの既定のテキストカラー(データバインディング用の前景色)
単純な例は、2番目の列の値が7のときにセルを赤色にすることです。テキストの既定の色がわからない場合は、他のセルからわずかに外れています。下の画像では、デフォルトのブラシは青色です。私はBushes.Black
を7以外の値に使用します。
データバインディングラインのC#コードは、XAMLコードは以下である
public Brush brush
{
get
{
if (data2 == 7)
return Brushes.Red;
return Brushes.Black;
}
}
あります。プロパティ値のみが設定されるように
<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>
ありがとう、素晴らしい答え。よく働く。私は 'TextBlock'にスタイルトリガーを置くことを知らなかった。 – Mochan