2010-08-10 5 views
1

Я ищу простой способ установки ClickMode = «Нажав» на каждый элемент управления в моем приложении Silverlight (который наследуется от ButtonBase, очевидно).Установить ClickMode для всех элементов управления Button в Silverlight

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

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

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

ответ

0

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

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

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

+0

спасибо за ваш ответ. Куда вы это положили? Я пробовал это раньше в теге , и он не работал. Кстати: я просто заметил, что режим на самом деле называется «Press» – Chris

+0

Вы можете поместить его в тег , но если вы хотите, чтобы стиль применялся ко всем элементам управления в приложении (а не только к определенному пользовательскому элементу управления), тогда используйте словарь ресурсов и ссылайтесь на него в файле App.xaml В этом сообщении должны быть разъяснены все вопросы, которые вы имеете о стилях в silverlight. http://www.silverlightshow.net/items/Merged-Resource-Dictionaries-in-Silverlight-3.aspx – dparker

+0

Теперь я использовал внешний словарь, который загружается при запуске приложения, но TargetType = ButtonBase, похоже, не работает , Когда у меня есть стиль для TargetType = Button, он работает, странно. Возможно, ClickMode переопределен по умолчанию для каждого подкласса Buttonbase? – Chris

1

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.

Так что, похоже, нет способа создать стиль для ButtonBase и его подклассов.

Смежные вопросы