Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > WPF и Silverlight > Один стиль для всех Label's внутри панели? |
Автор: exBlender 2.10.2009, 02:46 |
Например, имеем ранее созданный стиль Label1 и панель, типа: <StackPanel> <Label Style="{DynamicResource Label1}" Content="a"/> <Label Style="{DynamicResource Label1}" Content="b"/> <!-- (+ еще десяток Label's с этим же стилем, в сумме - дюжина) --> </StackPanel> Есть какой-то довольно простой способ указать, что внутри панели все Label's будут иметь стиль {DynamicResource Label1} <StackPanel> <StackPanel.Resources> ???(вот тут я забыл, как это указать) </StackPanel.Resources> а затем пойдет <Label Content="a"/> <Label Content="b"/> <!-- (+ еще десяток Label's , в сумме - дюжина) --> </StackPanel> и при добавлении Label в панель стиль указывать уже не нужно. Может ли кто подсказать? Хелп, плз... |
Автор: math64 2.10.2009, 08:01 | ||
|
Автор: exBlender 2.10.2009, 15:46 |
Спасибо за ответ. А через DynamicResource без BasedOn сделать нельзя? Мне кажется, раньше я делал без создания StaticResources в этом же файле. |
Автор: knox 3.10.2009, 21:04 | ||||
немного не дочитал если в этом же файле, без ресурсного словаря то можно так:
|
Автор: exBlender 4.10.2009, 20:06 | ||||
Спасибо за ответы! У меня есть дополнительный вопрос. Я хочу назначить стиль всем Button's внутри Toolbar'a. Если указываю стиль
внутри ReachTextBox'a стиль работает, внутри самой панели тулбара не работает. Если я указываю BasedOn стиль внутри тулбара:
- это тоже не работает. Что здесь не так или чего не хватает? Tnx. |
Автор: math64 4.10.2009, 22:41 |
Тулбар по уполчанию определяет свои стили для кнопок, чекбоксов и радиобуттонов. Они более приоритетны, чем стили определённые в окне, поэтому первый способ не работает. Почему не работает второй способ, непонятно. Исходники стилей всех элементов можно найти в msdn. |
Автор: exBlender 4.10.2009, 23:56 |
Я забыл, что внутри Toolbar Template находится ToolBarPanel (x:Name="ToolBarPanel" IsItemsHost="true"). Все кнопки размещаются там. Видимо, в <ToolBar.Resources> нужно указать путь к этой панели. Как это сделать? Tnx. |
Автор: math64 5.10.2009, 08:28 |
Можно внутри Toolbar разместить StackPanel, в которой разместить кнопки и задать их стили. Визульно наличие StackPanel будет незаметно. |
Автор: exBlender 5.10.2009, 23:30 | ||
Да оно вообще-то уже сделано (с векторными иконками) и выглядит так:
Buttons находятся внутри ToolBarPanel, она работает как контент-презентер, просто так стили не принимает, попыток изменения ControlTemplate тоже не понимает. То ли ее нужно превращать в Control, то ли еще что. Ладно, хоть стиль для ToolTip'ов работает - и то хлеб... Спасибо за ответы. |
Автор: math64 6.10.2009, 10:26 | ||
Вот увидел в msdn пример:
|
Автор: exBlender 6.10.2009, 11:03 |
Спасибо, попробую ToolBar.ButtonStyleKey. Думаю, это оно! У меня был прописан стиль просто для Button. ... p.s. Да, ToolBar.ButtonStyleKey работает без всяких заморочек. |