【问题标题】:Style CustomWpfDataGrid in code?在代码中设置 CustomWpfDataGrid 样式?
【发布时间】: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


【解决方案1】:

我猜问题出在模板上,所以我不得不这样做:

This.Template=(System.Windows.Controls.ControlTemplate)res["DataGridControlTemplate1"];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-04
    • 2012-01-21
    • 2016-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多