0

説明

UserControlのEasingModeのパブリック プロパティを宣言すると、Visual Studio のプロパティには表示されません。これは、他のカスタム プロパティではなく、 EasingModeだけの奇妙な動作です。

問題

EasingModeのプロパティがあれば、XAML で使用でき、有効なプロパティです。しかし、Visual StudioのPropertiesからこのプロパティにアクセスする必要があります。単純な列挙型の単純なパブリック プロパティは、他のように設計時にアクセスできる必要がありますが、EasingModeでは機能しません

質問

プロパティの値をコードまたは XAML から直接変更できることは知っていますが、

  1. このプロパティがこの奇妙な動作をする理由を見つける必要があります。
  2. これを修正する方法は?この列挙型のプロパティがVisual Studio のデザイン タイムのプロパティパネルに表示されるようにするための解決策は何ですか?

この例を見てください

[Bindable(true)]
[Browsable(true)]
[Category("TEST")]
public EasingMode A1
{
    get { return (EasingMode)this.GetValue(A1Property); }
    set { this.SetValue(A1Property, value); }
}
public static readonly DependencyProperty A1Property = DependencyProperty.Register("A1", typeof(EasingMode), typeof(UserControl1));

[Bindable(true)]
[Browsable(true)]
[Category("TEST")]
public MessageBoxButton A2
{
    get { return (MessageBoxButton)this.GetValue(A2Property); }
    set { this.SetValue(A2Property, value); }
}
public static readonly DependencyProperty A2Property = DependencyProperty.Register("A2", typeof(MessageBoxButton), typeof(UserControl1));

A1 と A2 は単純な列挙型の単純なプロパティですが、A1 はVisual Studioの [プロパティ]パネルには表示されません。それをテストして見つけて、私を助けてください:)

スクリーンショット

4

2 に答える 2

0

私の理解が正しければUserControl、Visual Studio デザイナーでのプロパティを確認したいですか? これが正しい場合は、MSDNのコンポーネントのデザイン時属性ページを参照してください。

そこには、プロパティで定義できる便利な属性がいくつかあります。

[Category("Alignment"), Description("Specifies the alignment of text.")]
public ContentAlignment TextAlignment { //... }

MSDN から。

更新 >>>

申し訳ありませんが、以前はあなたのことをよく理解していませんでした。ただし、問題をテストしたのでコード機能することを確認できます。

ここに画像の説明を入力

デザイナーが自分自身を更新する前に、プロジェクトをビルドする必要があります。

于 2013-09-02T11:47:37.973 に答える