【问题标题】:Why does my Attached Property show in Blend designer but not in VS2010?为什么我的附加属性在 Blend 设计器中显示,但在 VS2010 中不显示?
【发布时间】:2011-12-08 12:26:40
【问题描述】:

我有一个附加属性,我正在使用设计时程序集向设计器注册它。我正在使用 AttachedPropertyBrowsableForTypeAttribute,以便在选择 TextBox 时显示该属性。

该属性在 Expression Blend 4 中显示良好,但在 Visual Studio 2010 SP1 中不显示。

有谁知道为什么它不会出现在 Visual Studio 中? 您可以从此处下载演示问题的测试项目: Test Project

谢谢!

【问题讨论】:

    标签: wpf visual-studio-2010 expression-blend attached-properties cider


    【解决方案1】:

    简短的回答确实是因为苹果酒设计师完全是一坨屎。这是更长的答案:

    来自Microsoft blog:

    要记住的一件事是展示的要求之一 设计器中的附加属性是拥有类型需要 已由设计师加载。每当设计师 访问该类型,因为它在 XAML 源中或者是依赖项 从 XAML 源加载的元素。

    所以问题是苹果酒设计者只关心已经加载的类型。您可以通过将包含的 Grid 更改为 StackPanel 来查看此示例:Grid.Row 和 Grid.Column 附加属性将从 Visual Studio 中的 TextBox 属性列表中消失。 Blend 设计表面在某种程度上更加宽容,并且可以识别您的类型。此外,即使在使用 StackPanel 时,Blend 也会尽职尽责地显示 Grid.IsSharedSizeScope(在 Layout 属性下)。

    看看微软如何使用和支持附加属性,他们似乎更喜欢在布局容器上使用它们。例如有AttachedPropertyBrowsableForChildrenAttribute。这样您就可以为 Canvas 元素的子元素执行诸如 show Canvas.Left 之类的操作。我的印象是,他们没有彻底考虑当今大多数人实际上是如何使用附加属性的(将功能固定到对象的一侧,而不是让功能从父对象向下流动)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-14
      • 1970-01-01
      • 1970-01-01
      • 2020-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-10
      相关资源
      最近更新 更多