1

最初にコードを提供し、その後で質問します。

namespace LinearGradientBrushBinding
{
    public partial class LinearGradBrush : UserControl
    {
        public LinearGradBrush()
        {
            InitializeComponent();
        }

        class LinearGradBrushProp : DependencyObject
        {
            public static DependencyProperty _background;

            static void BackgroundBrush()
            {
                _background = DependencyProperty.Register(
                    "_background", typeof(Brush), typeof(LinearGradBrushProp));
            }

            [Description("CuloareBG"), Category("Z")]
            public Brush Background
            {
                get { return (Brush)GetValue(_background); }
                set { SetValue(_background, value); }
            }
        }
    }
}

ご覧のとおり、クラスを持つ UserControl があります。私の質問は、コントロールの [プロパティ] ウィンドウ (UserControl.Xaml の右側) にブラシが含まれるカテゴリ Z が表示されない理由です。

4

1 に答える 1

0

コントロールの [プロパティ] ウィンドウ (UserControl.Xaml の右側) に、ブラシを含むカテゴリ Z が表示されないのはなぜですか。

単純LinearGradBrushに、カテゴリで注釈が付けられたプロパティが含まれていないためZです。

LinearGradBrushそのようなプロパティを持つ (プライベート) 内部クラスが含まれていますが、プロパティ エディターがこの内部クラスのどのインスタンスにプロパティ値を割り当てるかを知る方法はありません。(プロパティ エディターは、この内部クラスが非公開であるため、この内部クラスを表示することさえできない場合があります。)

このプロパティを内部クラスから移動し、クラスを取り除くことをお勧めします。ここで内部クラスを使用する必要がある理由が正直にわかりません。

また、依存関係プロパティが正しく宣言されていないことを指摘したいと思います。BackgroundBrush()正しい命名規則を使用しておらず、依存関係プロパティを初期化するメソッドへの呼び出しを確認できません。プロパティが次のように宣言されることを期待します (フィールドの名前、フィールドの名前、およびメソッドreadonlyの最初のパラメーターがプロパティの名前であることに注意してください)。Register

public static readonly DependencyProperty BackgroundProperty =
    DependencyProperty.Register("Background", typeof(Brush), typeof(LinearGradBrush));

[Description("CuloareBG"), Category("Z")]
public Brush Background
{
    get { return (Brush)GetValue(BackgroundProperty); }
    set { SetValue(BackgroundProperty, value); }
}

私はあなたのコードにこの変更を加え、別の XAML ページに切り替え (つまり ではないLinearGradBrush.xaml)、コントロールを要素としてこの XAML ページに追加しました<local:LinearGradBrush />。テキスト カーソルがこの要素の上にある間、プロパティ ウィンドウBackgroundZカテゴリにプロパティが表示されました。

于 2012-09-25T21:50:24.577 に答える