Определение двух разных стилей для панели инструментов в WPF?

Я хочу сделать 2 разных стиля для элемента управления ToolBar: один основан на черных кнопках, а другой — на серебряных кнопках. Но я не могу понять, как применить мои стили кнопок к собственным стилям панели инструментов. Следующее позволяет использовать только один стиль для кнопок:

 <Style x:Key="{x:Static ToolBar.ButtonStyleKey}" 
        BasedOn="{StaticResource BlackButtonStyle}"
        TargetType="{x:Type Button}"/>

person mobileTofu    schedule 14.07.2010    source источник


Ответы (1)


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

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

person Scott    schedule 15.07.2010
comment
На одном экране сосуществуют две панели инструментов: черная вверху и серебристая внизу. {x:Static ToolBar.ButtonStyleKey} позволяет одновременно использовать только один стиль для кнопки. А пока я просто заменяю панель стека на одну из панелей инструментов... - person mobileTofu; 15.07.2010
comment
Ааа... Теперь я лучше вижу проблему. Не уверен, что это сработает... но каждая панель инструментов имеет свой собственный раздел .Resources... можете ли вы поместить свой стиль, указанный выше, в каждый из разделов ресурсов панели инструментов (и для того, который вы хотите сделать серебряным, измените файл BasedOn для использования SilverButtonStyle)? Просто мысль, но, возможно, вы уже пробовали это. - person Scott; 15.07.2010
comment
Привет, Скотт, я думаю, это должно сработать. Или я могу использовать именованный стиль (с ключом). Спасибо. - person mobileTofu; 14.02.2011