我正在尝试设置一个控件模板,允许我向元素添加上下文菜单。麻烦是我能弄清楚如何做到这一点的唯一方法是嵌套两个标签。
这是我的风格:
<Style x:Key="RightClickMenu" TargetType="{x:Type Label}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Label">
<Label Name="RightClickElement">
<Label.ContextMenu>
<ContextMenu DataContext="{Binding PlacementTarget, RelativeSource={RelativeSource Self}}">
<MenuItem x:Name="CopyMenuItem" Command="{Binding DataContext.OnCopyCommand}" InputGestureText="Ctrl+C" Header="Copy" />
<MenuItem x:Name="PasteMenuItem" Command="{Binding DataContext.OnPasteCommand}" InputGestureText="Ctrl+P" Header="Paste" />
</ContextMenu>
</Label.ContextMenu>
</Label>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="FontWeight" Value="Bold"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
现在将标签变为标签的唯一方法是:
<Expander Name="ExpanderControl" Margin="5,5,5,5">
<Expander.Header>
<Label x:Name="LabelTemplate" Style="{StaticResource RightClickMenu}" />
</Expander.Header>
</Expander>
这意味着我最终会有点垃圾。另外,这意味着我无法为其他控件定义此上下文菜单!
如何指定我的expnder标头有一个模板。哪个只是一个标签?