设置代码依赖项属性FontSizeProperty name中的样式属性在silverlight库的当前上下文中不存在

设置代码依赖项属性FontSizeProperty name中的样式属性在silverlight库的当前上下文中不存在,silverlight,dependency-properties,styles,Silverlight,Dependency Properties,Styles,这与我前面的问题类似,但该解决方案并没有解决此问题 当我将一个方法从Silverlight主页代码移到Silverlight库中的一个新类时,fontSizeProperty没有被识别 using System.Windows.Controls; namespace MyNameSpace { public static class DataGridBuilder { private static Style BuildHeaderStyle(string to

这与我前面的问题类似,但该解决方案并没有解决此问题

当我将一个方法从Silverlight主页代码移到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;
    }

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

我相信您想要
Control.FontSizeProperty
Control.fontwweightProperty


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

这个答案和@Julien Lebosquain都是正确的。我把这个标记为答案,因为它有更多的解释。谢谢你,卢克。