我创建了几个自定义控件,它们的子控件在 WPF 的属性浏览器中正确显示了附加属性,但在 Silverlight 中,没有任何附加属性出现在属性浏览器中。
如何为 Silverlight 中的附加属性添加设计时支持?
我创建了几个自定义控件,它们的子控件在 WPF 的属性浏览器中正确显示了附加属性,但在 Silverlight 中,没有任何附加属性出现在属性浏览器中。
如何为 Silverlight 中的附加属性添加设计时支持?
看起来可能有一些属性可以使自定义属性出现在设计器中:http:
//blogs.msdn.com/jnak/archive/2008/01/17/showing-attached-properties-in-the-cider -wpf-designer.aspx
不过我还没有尝试过,不确定它是否可以与 Silverlight 一起使用。
Henrik 绝对适用于 VS2015/Blend 中的 WPF。仅供参考,我添加了链接文章中的一些信息,因为很多次博客链接在多年后消失。
AttachedPropertyBrowsableWhenAttributePresentAttribute
此属性允许您指定当所选项目应用了给定属性时,您的附加属性显示在属性浏览器中。如果属性具有默认值,则该值也必须不同于默认值。
In the example above that passes in “MyCustomAttribute” as the attribute to look for, when CustomLabel below is selected in the designer, the Property Browser will show the ShowWhenCustomAttribute attached property however it will not when CustomLabelNoCustomAttribute is selected:
[MyCustomAttribute]
public class CustomLabel : Label
{
}
public class CustomLabelNoCustomAttribute : Label
{
}
AttachedPropertyBrowsableForChildrenAttribute
此属性指示附加属性应可用于给定控件的子级。此属性有两种主要风格。一种包括后代,一种不包括后代。正如您可能期望的那样,包括后代是指包括所有子级或只是控件的直接子级。
[AttachedPropertyBrowsableForChildrenAttribute(IncludeDescendants=true)]
public static int GetShowForChildrenDeep(UIElement element)
{
return (int)element.GetValue(ShowForChildrenDeepProperty);
}
AttachedPropertyBrowsableForType
此属性允许您指定在设计器中选择给定类型或从该类型派生的类型时显示您的附加属性。以下示例将在选择任何 Grid、派生 Grid、Button 或派生 Button 时显示您的附加属性。
[AttachedPropertyBrowsableForType(typeof(Grid))]
[AttachedPropertyBrowsableForType(typeof(Button))]
public static int GetShowForTypes(UIElement element)
{
return (int)element.GetValue(ShowForTypesProperty);
}
这里是 MSDN 文档链接:
https://msdn.microsoft.com/en-us/library/system.windows.attachedpropertybrowsableforchildrenattribute(v=vs.110).aspx https://msdn.microsoft.com/en-us/library/system.windows。 attachpropertybrowsablefortypeattribute(v=vs.110).aspx https://msdn.microsoft.com/en-us/library/system.windows.attachedpropertybrowsablewhenattributepresentattribute(v=vs.110).aspx