Мой пользовательский элемент управления в панели инструментов - PullRequest
0 голосов
/ 21 октября 2011

У меня есть особый контроль. Я хочу сделать стиль для него, когда он находится в панели инструментов. Я нашел, как это сделать в случае Button, CheckBox и других стандартных элементов управления, но как мне сделать это для моего элемента управления?

Ответы [ 2 ]

1 голос
/ 21 октября 2011
<Style x:Key="MyStyleForCustomControl" TargetType="{x:Type NameSpace:CustomControl}">

// Your setter's for your controls go here.

</Style>

NameSpace - где присутствует ваш элемент управления. CustomControl - Имя вашего элемента управления.

Это то, что вы хотите?

РЕДАКТИРОВАТЬ:

Если вы хотите, чтобы стиль для панели инструментов находился в вашем элементе управления, просто поместите стиль в свои ресурсы UserControl, он будет применен к панели инструментов, расположенной в вашем элементе управления.Область действия этого стиля будет ограничена вашим контролем и будет скрыта за пределами вашего контроля.

<UserControl.Resources>
<Style TargetType="{x:Type ToolBar}">
   ....
</Style>
</UserControl.Resources>
0 голосов
/ 24 октября 2011

Хорошо, теперь вы прояснили свой вопрос, я думаю, что могу дать вам решение.Похоже, вам просто нужно установить ItemContainerStyle элемента управления ToolBar для вашего конкретного пользовательского элемента управления.Сначала объявите пространство имен my, в котором расположен ваш конкретный элемент управления, а затем просто добавьте что-то вроде этого:

<ToolBar>
    <ToolBar.ItemContainerStyle>
        <Style TargetType="{x:Type my:MyUserControl}">
            <Setter Property="Background" Value="Azure"/>
        </Style>
    </ToolBar.ItemContainerStyle>
    <my:MyUserControl/>
</ToolBar>

Если вы хотите добавить другие элементы управления в панель инструментов, например, кнопку, которую вы упомянули выше, тогдавместо этого нужно определить пользовательский стиль StyleSelector, который вы установите для свойства ItemContainerStyleSelector.Вот довольно хороший пример реализации StyleSelector: Селекторы стиля

...