11

WPF アプリケーションのコード ビハインドから xaml を生成しており、生成された xaml にスタイルを追加したいと考えています。リソース ディクショナリを使用して、アプリがアクセスし、リソース ディクショナリのキーに基づいて生成された xaml の適切な要素に適用するスタイリング情報を保存しています。ここで、生成された xaml のすべてのテキスト ボックスに特定のスタイルを適用したいと考えています。私がやろうとしているのは、キーなしでリソース ディクショナリにこのスタイルを作成することであり、このスタイル リソースを生成された xaml のリソースに追加したいと考えています。キーなしで、この生成された xaml のリソース ディクショナリに特定のリソースを追加する方法が見つからないようです。私の質問は、そのリソースのキーなしでユーザー コントロール (またはウィンドウなど) のリソース ディクショナリにリソースを追加することは可能ですか?

たとえば、生成したい XAML は次のとおりです。

<UserControl>
    <UserControl.Resources>
        <Style TargetType="{x:Type TextBox}">
            <!--The TextBox style-->
        </Style>
    </UserControl.Resources>
</UserControl>

ありがとう!

4

1 に答える 1

18

だから、私はこれを行う方法を見つけました。文字列キーを指定する代わりに、生成された xaml のリソースに追加するときに、typeof(TextBox) を使用したところ、うまくいったようです。

UserControl.Resources.Add(typeof(TextBox), styleDictionary["TextBoxStyleKey"]);

これにより、次の結果が得られます。

<UserControl.Resources>
    <Style TargetType="TextBox" x:Key="{x:Type TextBox}">
        <!--The Style-->
    </Style>
</UserControl.Resources>

これを行うためのより良い方法(または他の方法)はありますか?

于 2012-05-31T13:30:13.610 に答える