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


这与

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

当我将方法从 Silverlight MainPage 代码移动到 Silverlight 库中的新类(有效(时,无法识别 fontSize属性

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;
    }

我相信你想要Control.FontSizePropertyControl.FontWeightProperty

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

FontSizeProperty是在 Control 上定义的,你不是从中派生的,所以你必须使用 Control.FontSizeProperty

最新更新