1

Silverlightアプリケーションのすべてのコントロール(明らかにButtonBaseから継承)にClickMode="Pressed"を設定する簡単な方法を探しています。

ソリューションは、SilverlightToolkitのComboBoxなどのコントロールテンプレートの一部であるButtonBase-Controlにもアクセスする必要があります。

このためにカスタムテーマを作成する必要がありますか?はいの場合、既存のテーマを再利用してこのプロパティを上書きするにはどうすればよいですか?

前もって感謝します。

4

2 に答える 2

1

http://msdn.microsoft.com/en-us/library/system.windows.style%28v=VS.95%29.aspx under Implicit Styles:

Silverlight 4では、スタイルを暗黙的に設定できます。つまり、特定のタイプのすべての要素に特定のスタイルを適用できます。リソースがx:Key値なしで宣言されている場合、x:Key値はTargetTypeプロパティの値を想定します。スタイルを暗黙的に設定した場合、スタイルはTargetTypeに完全に一致するタイプにのみ適用され、TargetType値から派生した要素には適用されません。たとえば、アプリケーション内のすべてのToggleButtonコントロールに対して暗黙的にスタイルを作成し、アプリケーションにToggleButtonコントロールとCheckBoxコントロール(CheckBoxはToggleButtonから派生)がある場合、スタイルはToggleButtonコントロールにのみ適用されます。

したがって、ButtonBaseとそのサブクラスのスタイルを作成する方法はないようです。

于 2010-08-10T14:11:01.140 に答える
0

あなたは実際にあなた自身の質問に答えました。はい、既存のスタイルを使用して、アプリのすべてのButtonBaseコントロールでClickModeプロパティが設定されていることを確認できます。

これがあなたを動かすスタイルです。これは名前のないスタイルであり、ButtonBaseから拡張するすべてのコントロールがこのスタイルを継承することを保証します。

 <Style TargetType="ButtonBase">
        <Setter Property="ClickMode" Value="Pressed"/>
 </Style>
于 2010-08-10T12:35:09.043 に答える