向资源添加常量

时间:2015-10-08 10:03:32

标签: wpf xaml datagrid

我在代码中定义了一个画笔,我希望将其添加到我在XAML中使用特定键定义的DataGrid的resources标记中。

我该怎么做?

我需要使用键添加现有画笔,因为我会覆盖突出显示的行的外观:

<DataGrid.Resources>
 <LinearGradientBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" StartPoint="0,0" EndPoint="0,1">
   <GradientStop Color="#FFD6A4" Offset="0"/>
   <GradientStop Color="#FFAB3F" Offset="1"/>
 </LinearGradientBrush>
</DataGrid.Resources>

我想要使用的刷子无需重新定义它:

public static class Colours
{
  public static LinearGradientBrush HighlightedRow { get; private set; }
  static Colours()
  {
    HighlightedRow = new LinearGradientBrush(Color.FromRgb(255, 214, 164), Color.FromRgb(255, 171, 63), 90);
  }
}

1 个答案:

答案 0 :(得分:1)

您可以在后面的代码中执行此操作:

myDataGrid.Resources.Add(SystemColors.HighlightBrushKey, Colours.HighlightedRow);

或仅限XAML: 如果您将两种渐变停止颜色作为资源,则可以在XAML中动态引用它们。

<Color x:Key="Color1">#FFFF0000</Color>
<Color x:Key="Color2">#FFFF3300</Color>
<DataGrid.Resources>
 <LinearGradientBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" StartPoint="0,0" EndPoint="0,1">
  <GradientStop Color="{DynamicResource Color1}" Offset="0"/>
 <GradientStop Color="{DynamicResource Color2}" Offset="1"/>
</LinearGradientBrush>
</DataGrid.Resources>