WPFアプリケーションのグローバルスタイルを設定する方法はありますか?
私がやりたいのは、Imageの子を持つすべてのボタンにスタイルを適用することです。
そうですね、これはすべてを網羅したアプローチです。次の要素をApp.xamlに配置します。すべてのボタンが変更されます(スタイルを手動で適用するボタンを除く)。
<Style TargetType="{x:Type Button}">
<Setter Property="Background" Value="LightPink"/> <!-- You should notice that one... -->
</Style>
ただし、画像付きのボタンのみを押したい場合は、毎回Buttonから継承し、次のようなスタイルを適用する必要があります。
public class CustomImageButton:Button{}
<Style TargetType="{x:Type local:CustomImageButton}">
<Setter Property="Background" Value="LimeGreen"/>
</Style>
<local:CustomImageButton Content="ClickMe"/>
これは非常に粗いグローバルスタイリングであり、それを機能させるには規則に従う必要があります。
別の方法は、テーマを使用することです-それについてもっと読む ここ 。
タイプごとに適用される暗黙的なスタイルをWPFで実行できます
例えば
<Style TargetType="Button">
そのスタイルのスコープ内のすべてのボタンに適用されます(スタイルがApp.XAMLにある場合はすべてのボタンに適用され、チェーンの下位にある場合はその下のすべてのボタンに適用されます)
特定のタイプのボタン(たとえば、imagebuttons)にのみ適用する場合は、ボタンから派生したタイプ(ImageButtonと呼びます)を作成してから、そのタイプをターゲットとするスタイルを作成します。
App.xaml内のResourceDictionaryタグにスタイルを配置すると、アプリ全体に適用されます。