Есть ли способ настроить глобальные стили для моего приложения WPF?
То, что я надеюсь сделать, это применить стиль ко всем моим кнопкам, которые также имеют дочерний элемент изображения.
Есть ли способ настроить глобальные стили для моего приложения WPF?
То, что я надеюсь сделать, это применить стиль ко всем моим кнопкам, которые также имеют дочерний элемент изображения.
Ну, вроде - это всеобъемлющий подход, который вы можете сделать, - добавьте следующий элемент в свой 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">
Будет применяться ко всем кнопкам в рамках этого стиля (если стиль находится в приложении .XAML, он применим ко всем кнопкам, если он ниже в цепочке, он будет применяться ко всем кнопкам под ним)
Если вы хотите применить его только к определенным типам кнопок (например, к кнопкам изображения), создайте тип, который выводится из кнопки (вызовите его ImageButton), а затем создайте стиль, ориентированный на этот тип.
Поместите стиль в тег ResourceDictionary внутри вашего App.xaml, и он применим ко всему приложению.