4

コントロールをカスタム プロパティでマークしたいと考えています。たとえば、「時代遅れ」のように。

そして、マイクロソフトのビジュアルスタジオとブレンドがこのプロパティを無視するようにするという他の要件!

ブレンドはプロパティを使用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));

2 番目の部分では、Visual Studio または Blend でこのプロパティを無視する理由など、さらに明確にする必要があります。さらに、「dll に Visual Studio がなく、blend がこのプロパティを無視する場合」とはどういう意味ですか? この回答を改善するには、あなたの側からもう少し詳細が必要です。それ以外の場合は、主に当て推量のままです。

完全なソース コードは、ここからダウンロードできます。このアプリケーションでは、さまざまな画像リソースを選択できますが、「要求された」目的を示すために作成されました。


さらなる参考文献:

于 2012-10-20T20:26:31.397 に答える