如何在wpf中添加自定义可忽略属性

时间:2012-09-19 22:50:08

标签: wpf silverlight

我想用自定义属性标记任何控件。例如“过时”。

还有其他要求我想要微软视觉工作室并混合忽略这个属性!

我注意到混合使用了mc:Ignorable="d"并添加了d:DesignerWidth属性。

如何使用自定义属性标记我的控件?如果dll丢失,我需要确定  visual studio和blend将忽略此属性。

1 个答案:

答案 0 :(得分:1)

您的请求的第一部分可以通过使用依赖项属性或附加属性来完成。

请参阅以下示例代码:

public static readonly DependencyProperty ObsoleteAttached = DependencyProperty.RegisterAttached(
  "ObsoleteAttached", typeof(Boolean), typeof(UserControl1), new UIPropertyMetadata(false)
);

public static Boolean GetObsoleteAttached(DependencyObject obj)
{
    return (Boolean)obj.GetValue(ObsoleteAttached);
}
public static void SetObsoleteAttached(DependencyObject obj, Boolean value)
{
    obj.SetValue(ObsoleteAttached, value);
}

public Boolean Obsolete
{
    get { return (Boolean)this.GetValue(ObsoleteProperty); }
    set
    {
        this.SetValue(ObsoleteProperty, value);
    }
}
public static readonly DependencyProperty ObsoleteProperty = DependencyProperty.Register(
  "Obsolete", typeof(Boolean), typeof(UserControl1), new PropertyMetadata(false));

您的第二部分需要更多说明,例如为什么您希望Visual Studio或Blend忽略此属性?此外,你是什么意思'如果dll缺少视觉工作室和混合会忽略这个属性'?为了改善这个答案,我需要你身边的更多细节,否则它仍然主要是猜测。

您可以下载完整的源代码here。该应用程序允许您选择不同的图像资源,但是,它是为了演示“请求”的目的。


进一步参考: