Wpf 为什么我的附加属性显示在Blend designer中,而不显示在VS2010中?

Wpf 为什么我的附加属性显示在Blend designer中,而不显示在VS2010中?,wpf,visual-studio-2010,expression-blend,attached-properties,cider,Wpf,Visual Studio 2010,Expression Blend,Attached Properties,Cider,我有一个附加属性,我正在使用设计时程序集向设计师注册它。我正在使用AttachedPropertyBrowsableForTypeAttribute,以便在选择文本框时显示属性 该属性在Expression Blend 4中显示良好,但在Visual Studio 2010 SP1中未显示 有人知道为什么它不会出现在VisualStudio中吗? 您可以从此处下载演示问题的测试项目: 谢谢 简短的回答确实是因为苹果酒设计师是一个彻头彻尾的废物。下面是一个较长的答案: 从 需要记住的一点是,

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

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

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


谢谢

简短的回答确实是因为苹果酒设计师是一个彻头彻尾的废物。下面是一个较长的答案:

需要记住的一点是,展示 设计器中的附加属性是所属类型需要 已由设计师加载。每当设计师 访问该类型,因为它位于XAML源中或是依赖项 从XAML源加载的元素的

所以问题是苹果酒设计师只关心已经加载的类型。通过将包含网格更改为StackPanel,您可以看到这样一个示例:Grid.Row和Grid.Column附加属性随后将从Visual Studio中的文本框属性列表中消失。混合设计表面在某种程度上更加宽容,能够识别您的类型。此外,即使使用StackPanel,Blend也会尽职尽责地显示Grid.IsSharedSizeScope(在布局属性下)

看看微软如何使用和支持附加属性,他们似乎更喜欢在布局容器上使用它们。例如,有一个。这样你就可以做一些事情,比如显示画布。留给画布元素的子元素。我得到的印象是,他们没有充分考虑到现在大多数人实际上是如何使用附加属性(将功能锁定在一个对象的一侧,而功能从一个家长下山)。