【发布时间】:2012-09-17 08:37:45
【问题描述】:
我正在尝试在代码中设置样式但一直无法做到,
在xml中
<Style x:Key="DataGridStyle1" TargetType="{x:Type DataGrid}">
<Setter Property="Template" Value="{DynamicResource DataGridControlTemplate1}"/>
</Style>
<Style x:Key="DataGridStyle2" TargetType="{x:Type DataGrid}">
<Setter Property="Background" Value="AntiqueWhite"/>
</Style>
这是自定义控件:
public class CustomDataGrids : DataGrid
{
public CustomDataGrids()
{
ResourceDictionary res = Application.LoadComponent(new Uri("CustomDataGridStyle.xaml", UriKind.Relative)) as ResourceDictionary;
this.Style = (Style)res["DataGridStyle1"];
this.ColumnHeaderStyle = (Style)res["ColumnHeaderStyle1"];
}
}
当 Style=DataGridStyle2 时,它工作得很好,但当 Style=DataGridStyle1 时,它不起作用,有什么想法吗?
【问题讨论】:
-
两个模板不同。最好在 DataGridStyle1 中设置背景,然后检查。
-
可能带有
DataGridControlTemplate1键的模板有问题。你能发布那个模板的代码吗? -
感谢您的关注,我知道问题是 DataGridControlTemplate1,当我设置模板而不是样式时,它工作得很好:
this.Template= (Style)res["DataGridControlTemplate1"];,但我不明白为什么?!
标签: wpf styles wpfdatagrid