Есть ли способ настроить глобальные стили для моего приложения WPF?WPF - глобальный стиль?
То, что я надеюсь сделать, это применить стиль ко всем моим кнопкам, которые также имеют дочерний элемент изображения.
Есть ли способ настроить глобальные стили для моего приложения WPF?WPF - глобальный стиль?
То, что я надеюсь сделать, это применить стиль ко всем моим кнопкам, которые также имеют дочерний элемент изображения.
Ну, вроде - это подход, который вы можете использовать, - добавьте следующий элемент в свой App.xaml - все ваши кнопки изменятся (кроме тех, которые вы применяете к стилю, вручную).
<Style TargetType="{x:Type Button}">
<Setter Property="Background" Value="LightPink"/> <!-- You should notice that one... -->
</Style>
Однако, если вы хотите попасть только кнопки с изображениями - вы должны наследовать от кнопки каждый раз, что вы делаете, а затем применить стиль, как это:
public class CustomImageButton:Button{}
<Style TargetType="{x:Type local:CustomImageButton}">
<Setter Property="Background" Value="LimeGreen"/>
</Style>
<local:CustomImageButton Content="ClickMe"/>
Это очень крупнозернистый глобальный стиль - и вам нужно следовать конвенции, чтобы она работала.
Альтернативой является использование Темы - подробнее об этом here.
Вы можете сделать неявные стили в WPF, которые применяются по типу
, например
<Style TargetType="Button">
будет применяться ко всем кнопкам в пределах этого стиля (Если стиль в App. XAML он применим ко всем кнопкам, если он ниже в цепочке, он будет применяться ко всем кнопкам под ним)
Если вы хотите применить его только к определенным типам кнопок (например, кнопкам с изображением), создайте тип, который происходит от (назовите его ImageButton), а затем создайте как tyle, нацеленный на этот тип.
OK ... этот вид работ. Одна из моих кнопок, похоже, уважает это изменение, а другие - нет. Все они работают, если я даю стиль «x: Key», а затем явным образом вызываю его с каждой кнопки, используя «Style =» {StaticResource DisabledButton}. В любом случае я могу избежать необходимости добавлять явные ссылки на каждую кнопку? –
Убедитесь, что словарь ресурсов, в котором этот стиль определен, находится в пределах области действия для всех кнопок, для которых требуется применить стиль. Размещение этого стиля в App.xaml будет видимым для всех кнопок в приложении. Движение ниже ограничит его видимость. –
Поместите стиль в тег ResourceDictionary внутри вашего App.xaml, и он применим ко всему приложению.
К сожалению, ссылка на Темы мертва. [Здесь] (http://blogs.msdn.com/b/wpfsdk/archive/2007/07/31/using-themes-with-custom-controls.aspx) является ссылкой на статью из MSDN по использованию тем, которые может быть аналогичным. –