2012-04-19 8 views
1

У меня есть пользовательский элемент управления WPF. В этом userControl у меня будет multmple WPF childControls (наследует My BaseElement).Добавление контекстного меню в WPF

мне нужно, чтобы каждый ChildControl содержит определенное контекстное меню (назад, вперед команды)

Код ниже не работает ... Что я делаю не так?

<UserControl.Resources> 
    <ContextMenu x:Key="ElementContextMenu"> 
     <MenuItem Header="Move backward" 
        Name="back" 
        Click="back_Click" /> 
     <MenuItem Header="Move forward" 
        Name="forw" 
        Click="forw_Click" /> 
    </ContextMenu> 
    <Style TargetType="{x:Type my:BaseElement}"> 
     <Setter Property="ContextMenu" 
       Value="{DynamicResource ResourceKey=ElementContextMenu}" /> 

ответ

1

Базовый стиль не применяется автоматически к производным элементам, вам необходимо создать стиль для каждого из них. К счастью, вы можете использовать наследование стиля через свойство BasedOn.

<UserControl.Resources> 
    <Style 
    TargetType="{x:Type my:Element1DerivingFromBase}" 
    BasedOn="{StaticResource {x:Type my:BaseElement}}" /> 

    <Style 
    TargetType="{x:Type my:Element2DerivingFromBase}" 
    BasedOn="{StaticResource {x:Type my:BaseElement}}" /> 
+0

merci, monsieur – serhio