Wpf ImageButtons? - PullRequest
       6

Wpf ImageButtons?

1 голос
/ 10 сентября 2009

Я создал приложение WPF с множеством кнопок.

Теперь клиент хочет поменять все кнопки на иконки. Например: Все кнопки ОК должны иметь одинаковый значок, все кнопки отмены и т. Д.

Я хочу вставить все кнопки Style = "{StaticResource ButtonStyle_OK}", Style = "{StaticResource ButtonStyle_OK}" и т. Д.

Теперь мой вопрос в общем, что я должен поместить в эти стили

<Style x:Key="ButtonStyle_OK" TargetType="Button">
    <!-- What comes here? -->                
</Style>

Я боюсь, что я собираюсь изменить все кнопки в моем приложении на Image и использовать событие MouseDown для щелчка, это будет глупо?

ПРИМЕЧАНИЯ: Я хочу, чтобы кнопки были изображением, а не кнопкой, которая содержит изображение (т.е. я не хочу исходную рамку кнопки), говоря о форме. Я хочу, чтобы эти кнопки / стили можно было использовать повторно.

Ответы [ 2 ]

3 голосов
/ 10 сентября 2009

поместите их в словарь ресурсов, тогда все, что вам нужно сделать, это поменять словари, чтобы изменить стиль, и почти все, что связано со стороной кнопок и т. Д.

Я думаю, вам нужен шаблон элемента управления в тегах, что-то вроде этого:

<Setter TargetType="{x:Type Button}">
     <Setter Property="Template">
         <Setter.Value>
             <ControlTemplate TargetType="{x:Type Button}">
             </ControlTemplate>
         </Setter.Value>
     <Setter Property="Template">
</Setter>

вы сможете найти шаблон по умолчанию в Интернете (MSDN) относительно легко. Я бы порекомендовал использовать Blend для этого (если вы можете) - это может облегчить жизнь.

2 голосов
/ 10 сентября 2009

Взгляните на эту статью MSDN о стилях - http://msdn.microsoft.com/en-us/library/ms745683.aspx

Я думаю, что вы, возможно, сможете добиться успеха, прочитав раздел ControlTemplate.

Кроме того, как отметил Крис, стили могут входить в словарь ресурсов, а затем могут применяться глобально ко всем кнопкам, пропуская клавишу.

ОБНОВЛЕНИЕ: вам не нужно использовать изображение с событием щелчка, использование ControlTemplate позволит вам более точно определить внешний вид кнопки.

Другой пример - http://mrpmorris.blogspot.com/2008/04/wpf-custom-button-templates.html

...