Каков наилучший способ создания кнопок панели инструментов с отдельными активными / отключенными изображениями в WPF? - PullRequest
4 голосов
/ 10 марта 2009

Я работаю над панелью инструментов для приложения WPF. Набор иконок, который мы используем, имеет отдельные значки для нормального, зависания и отключенного состояния, и я хотел бы использовать их. Мне было интересно, что самое простое решение / нормальный способ сделать это?

Моей первой мыслью было создание пользовательского элемента управления «ImageButton» со свойствами NormalImage, ActiveImage, DisabledImage, который содержал необходимые триггеры для IsMouseOver и IsEnabled. Это работает, но, к сожалению, приводит к тому, что кнопки теряют стиль кнопок панели инструментов, то есть они получают стандартные границы кнопок, не имеют синего фона при наведении курсора и расположены слишком близко друг к другу. Насколько я понимаю, это связано с тем, что элемент управления WPF Toolbar переопределяет стиль для дочерних элементов Button и не может перекомпилировать мои кнопки, поскольку они находятся внутри родительского ImageButton.

У кого-нибудь есть предложения, как заставить это работать? Я довольно новичок в WPF, так что, возможно, я просто подхожу к этому задом наперед.

1 Ответ

3 голосов
/ 10 марта 2009

Стиль вашего Button может быть основан на Style, полученном с помощью ToolBar.ButtonStyleKey . Например:

<Style TargetType="Button" BasedOn="{StaticResource {x:Static ToolBar.ButtonStyleKey}}">
    <Setter Property="MinHeight" Value="40"/>
</Style>
...