0

次のように、ユーザー コントロール内の TextBox から継承するコントロール用に 2 つのリソース ディクショナリを定義しました。

<UserControl.Resources>
    <ResourceDictionary Source="KeyBox.xaml" x:Key="KeyBox" ></ResourceDictionary>
    <ResourceDictionary Source="kTextBox.xaml" x:Key="kTextBox" ></ResourceDictionary>
</UserControl.Resources>

ターゲット タイプが異なる別のファイルにスタイルを作成しました。

<Style TargetType="b:kTextBox" >

これらのリソースを使用してコントロールを作成すると、最後に適用されたスタイルのみが実際に適用されるため、2 番目のスタイルを削除すると最初のスタイルが機能します。同じユーザーコントロール内で 2 つのリソースを利用するためにここで欠けているものがあり、それが何であるかわかりません。どんなアイデアでも大歓迎です。

4

1 に答える 1

0

次のようにリソース ディクショナリを追加してみてください。

 <UserControl.Resources>
     <ResourceDictionary>
         <ResourceDictionary.MergedDictionaries>
             <ResourceDictionary Source="KeyBox.xaml" x:Key="KeyBox" ></ResourceDictionary>
             <ResourceDictionary Source="kTextBox.xaml" x:Key="kTextBox" ></ResourceDictionary>
          </ResourceDictionary.MergedDictionaries>
     </ResourceDictionary>
 </UserControl.Resources>

kTextBox という名前のクラスがない限り、Style は機能しないことに注意してください。

コントロールには一度に 1 つのスタイルしか適用されず、ディクショナリに最後に追加されたリソースが適用されることにも注意してください。したがって、両方の辞書で同じキーを持つスタイルが定義されている場合、kTextBox.xaml のスタイルが適用されます。

于 2013-02-22T13:55:37.277 に答える