【问题标题】:Setting Style property in code - dependency property FontSizeProperty name does not exist in current context in silverlight library在代码中设置样式属性-silverlight 库的当前上下文中不存在依赖属性 FontSizeProperty 名称
【发布时间】:2011-07-22 20:23:50
【问题描述】:

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

当我将方法从 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;
    }

【问题讨论】:

    标签: silverlight dependency-properties styles


    【解决方案1】:

    我相信你想要的是 Control.FontSizePropertyControl.FontWeightProperty

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

    【讨论】:

    • 这个答案和@Julien Lebosquain 都是正确的。我将此标记为答案,因为它有更多解释。谢谢卢克。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-02-02
      • 2010-11-19
      • 2011-08-26
      • 2016-03-28
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 2010-11-02
      • 1970-01-01
      相关资源
      最近更新 更多