在代码中设置Style属性 - 依赖项属性FontSizeProperty名称在silverlight库的当前上下文中不存在

时间:2011-07-22 20:23:51

标签: silverlight dependency-properties styles

这与我之前的问题类似,但该解决方案并未解决此问题。

当我将Silverlight MainPage代码后面的方法(有效)移动到Silverlight库中的新类时,

无法识别fontSizeProperty

using System.Windows.Controls;

namespace MyNameSpace
{
    public static class DataGridBuilder
    {
        private static Style BuildHeaderStyle(string tooltip)
        {
            Style newGridHeaderStyle = new Style(typeof(DataGridColumnHeader));
            newGridHeaderStyle.Setters.Add(new Setter { Property = FontSizeProperty, Value = 9.0 });
            newGridHeaderStyle.Setters.Add(new Setter { Property = FontWeightProperty, Value = FontWeights.Bold });
            return newGridHeaderStyle;
        }
    }
}

注意:对于FontSizeProperty的每个MSDN,我确实包含System.Windows引用,并且“使用System.Windows.Control”

根据以下答案,我将“Property = FontSizeProperty”更改为“Property = DataGridColumnHeader.FontSizeProperty”等,如下所示:

    private static Style BuildHeaderStyle(string tooltip)
    {
        FontWeight fw = FontWeights.Bold;
        Style newGridHeaderStyle = new Style(typeof(DataGridColumnHeader));
        newGridHeaderStyle.Setters.Add(new Setter { Property = DataGridColumnHeader.FontSizeProperty, Value = 9.0 });
        newGridHeaderStyle.Setters.Add(new Setter { Property = DataGridColumnHeader.FontWeightProperty, Value = FontWeights.Bold });
        newGridHeaderStyle.Setters.Add(new Setter { Property = DataGridColumnHeader.ContentTemplateProperty, Value = CreateDataGridHeaderTemplate(tooltip) });
        return newGridHeaderStyle;
    }

2 个答案:

答案 0 :(得分:1)

FontSizeProperty是在Control上定义的,您不是从中派生出来的,因此您必须使用Control.FontSizeProperty

答案 1 :(得分:1)

我相信你想要Control.FontSizePropertyControl.FontWeightProperty

您的MainPage是一个用户控件,它有Control作为超类,因此继承了上述两个依赖项属性。您的静态类不是Control的子类,因此它不会继承这些依赖项属性。