Кнопки изображений Wpf?
-
05-07-2019 - |
Вопрос
Я создал приложение WPF, в котором много кнопок.
Теперь клиент хочет заменить все кнопки на иконки.Например:Все кнопки OK должны иметь одинаковый значок, все кнопки cancel btns и так далее.
Я хочу поместить во все кнопки Style="{StaticResource ButtonStyle_OK}", Style="{StaticResource ButtonStyle_OK}" и т.д.
Теперь мой вопрос в общих чертах заключается в том, что я должен разместить в этих стилях
<Style x:Key="ButtonStyle_OK" TargetType="Button">
<!-- What comes here? -->
</Style>
Я боюсь, что собираюсь изменить все кнопки в моем приложении на изображение и использовать событие наведения курсора мыши для щелчка, было бы глупо?
Примечания:Я хочу, чтобы кнопки были изображением, а не кнопкой, содержащей изображение (т.е.Мне не нужна оригинальная рамка кнопки), говоря о форме.Я хочу, чтобы эти кнопки / стили можно было использовать повторно.
Решение
Взгляните на эту статью MSDN о стилизации - http://msdn.microsoft.com/en-us/library/ms745683.aspx
Я думаю, вы могли бы получить некоторую информацию, прочитав раздел ControlTemplate.
Кроме того, как отметил Крис, стили могут быть перенесены в словарь ресурсов, а затем могут быть применены глобально ко всем кнопкам, если опустить клавишу.
Обновить:Вам не нужно будет использовать изображение с событием щелчка, использование ControlTemplate позволит вам более точно определить внешний вид кнопки.
Другой пример - http://mrpmorris.blogspot.com/2008/04/wpf-custom-button-templates.html
Другие советы
поместите их в словарь ресурсов, затем все, что вам нужно сделать, это поменять местами словари, чтобы изменить стиль и практически все, что связано с пользовательским интерфейсом кнопок и т.д.
Я думаю, вам нужен шаблон управления в тегах, что-то вроде этого:
<Setter TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
</ControlTemplate>
</Setter.Value>
<Setter Property="Template">
</Setter>
вы должны быть в состоянии относительно легко найти шаблон по умолчанию в Интернете (MSDN).Я бы рекомендовал использовать Blend для этого (если вы можете) - это может значительно упростить задачу.