Установите ClickMode для всех кнопочных элементов управления в Silverlight - PullRequest
1 голос
/ 10 августа 2010

Я ищу простой способ установить ClickMode = "Pressed" для каждого элемента управления в моем приложении Silverlight (которое явно наследуется от ButtonBase).

Решение также должно обращаться к любому ButtonBase-Control, являющемуся частью шаблона элемента управления, например ComboBox из SilverlightToolkit.

Должен ли я создать собственную тему для этого? Если да, как мне использовать существующую тему и просто переопределить это свойство?

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 10 августа 2010

http://msdn.microsoft.com/en-us/library/system.windows.style%28v=VS.95%29.aspx в разделе Неявные стили:

В Silverlight 4 можно задавать стили неявно.То есть вы можете применить определенный стиль ко всем элементам определенного типа.Когда ресурс объявляется без значения x: Key, значение x: Key принимает значение свойства TargetType.Если вы устанавливаете стиль неявно, стиль применяется только к типам, которые точно соответствуют TargetType, а не к элементам, производным от значения TargetType.Например, если вы неявно создаете стиль для всех элементов управления ToggleButton в вашем приложении, а в вашем приложении есть элементы управления ToggleButton и CheckBox (CheckBox является производным от ToggleButton), стиль применяется только к элементам управления ToggleButton.1008 * Так что, похоже, нет способа создать стиль для ButtonBase и его подклассов.

0 голосов
/ 10 августа 2010

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

 <Style TargetType="ButtonBase">
        <Setter Property="ClickMode" Value="Pressed"/>
 </Style>

Надеюсь, это поможет.

...