wpfデザイナの設定をいくつか定義できますか? 私は、ユーザーに2つの表示モードを提供したいと考えています: "すべてを境界線で描く"と "ランタイムビュー"。 私のカスタムコンポーネントは、設定を確認し、それに従って適切に描画する必要があります。WPF Designer - ユーザー定義の設定
1
A
答えて
1
私は、「DisplayMode」となるDependencyPropertyカスタムコンポーネントを追加するだけで、カスタムコンポーネントが(XamlまたはC#から)プロパティを配置する開発者に依存しますあなたは欲しいですか? XAMLで
public static readonly DependencyProperty DisplayModeProperty = DependencyProperty.Register(
"DisplayMode", typeof(int), typeof(DisplayModeProperty), new PropertyMetadata(1, OnModeChanged));
public bool DisplayMode
{
private get { return (bool)GetValue(DisplayModeProperty); }
set { SetValue(DisplayModeProperty, value); }
}
private static void OnModeChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
((MyCustomComponent)d).OnModeChanged(e);
}
private void OnModeChanged(DependencyPropertyChangedEventArgs e)
{
int mode = Convert.ToInt32(e.NewValue);
if(mode == 1)
{
//... Render for the Mode 1
}
else
{
//... Render for the Mode 2
}
}
は:
<cust:MyCustomCompoenent DisplayMode="1"/>
+0
これは1つのコンポーネントで機能しますが、1つの変数を変更したかったので、すべてのコンポーネントに影響します。あなたの提案に基づいて、このプロパティを親コンポーネントに追加し、DisplayModeが変更されると、すべての子が正しい表示モードで再描画されます。 それは動作しますが、私はこれを行う必要はないと思っていました。 – Markus
0
私はStrategy Patternがあなたに役立つと思います。共通の設定を持つ抽象基本クラスを定義し、そこから派生する複数の具象クラスを定義します。各具体的なクラスでは、枠線や枠線、色、テーマなど、いくつかのポリシーを定義します(これも同様にoverride
もあります)。実行時の型が具象クラスの1つになる基本クラス参照を使用して環境設定にアクセスすると、実行時に環境設定を変更できます。
関連する問題
は、あなたはこれを試みたことがありますか?コードはありますか? –