4

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

以及我希望 microsoft visual studio 和 blend 忽略此属性的其他要求!

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

如何使用自定义属性标记我的控件?而且我需要确保如果 dll 缺少 Visual Studio 和 Blend 将忽略此属性。

4

1 回答 1

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 缺少 Visual Studio 和 Blend 将忽略此属性'是什么意思?为了改进这个答案,我需要您提供更多细节,否则它仍然主要是猜测。

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


进一步参考:

于 2012-10-20T20:26:31.397 回答