DataGrid と TextBlocks のスタイルを暗黙的に適用しようとしています。
TextBlock の ForeGround には白色が必要です。
DataGrid の行には、黒色が必要です。
これに加えて、DataGrid のヘッダー列にも白が必要です。
MainPage で暗黙的なスタイルをグローバルに適用すると
<UserControl>
<UserControl.Resorces>
<Style targetType="TextBlock">
<Setter Property="Foreground" Value="White"/>
</Style>
</UserControl.Resorces>
</UserControl>
TextBlock のフォアグラウンドを白にする操作が完了しました。しかし、これに加えて、DataGridのすべての要素(デフォルトではコンテンツ要素はテキストブロックだと思います)は白色に変わります。
ご想像のとおり、白地に白は見栄えがよくありません:)では、DataGridの要素の前景を特に黒に指定するにはどうすればよいですか?
以下に示すのと同じテクニックを使用してそれを行うことができますが、これは DataGrid ごとに高価な操作です。詐欺として、DataGridのHeaderColumnsを再び白くしたい.この操作により、すべてが黒くなります。
css スタイルで行うような明示的な方法はありますか?
これが、コントロールテンプレートによってこの目標を達成しようとしたものです。しかし、DataGrid の ContentControl は動的であるため、チャンスはありません。
<DataGrid>
<DataGrid.Resources>
<Style targetType="TextBlock">
<Setter Property="Foreground" Value="Black"/>
</Style>
<DataGrid.Resources>
実際、Telerik の RadGridView を使用していますが、質問をよりグローバルにするために、sdk の DataGrid の例を示します。
<Style TargetType="sdk:DataGrid">
<Setter Property="Foreground" Value="Black"/>
<Setter Property="RowDetailsTemplate" Value="{StaticResource DataTemplate1}"/>
<Setter Property="Template" Value="{StaticResource ControlTemplate1}"/>
</Style>
<ControlTemplate x:Key="ControlTemplate1" TargetType="sdk:DataGrid">
<Grid/>
</ControlTemplate>
<DataTemplate x:Key="DataTemplate1">
<Grid/>
</DataTemplate>
前もって感謝します!