Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 在WPF中添加上下文菜单_.net_Wpf - Fatal编程技术网

.net 在WPF中添加上下文菜单

.net 在WPF中添加上下文菜单,.net,wpf,.net,Wpf,我有一个WPF用户控件。 在该userControl中,我将拥有多个WPF childControls(继承我的BaseElement) 我需要每个ChildControl都包含一个指定的上下文菜单(后退、前进命令) 下面的代码不起作用。。。我做错了什么 <UserControl.Resources> <ContextMenu x:Key="ElementContextMenu"> <MenuItem Header="Move backwar

我有一个WPF用户控件。 在该userControl中,我将拥有多个WPF childControls(继承我的
BaseElement

我需要每个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}" />

基本样式不会自动应用于派生元素,您需要为每个元素创建一个样式。幸运的是,您可以通过
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}}" />

基本样式不会自动应用于派生元素,您需要为每个元素创建一个样式。幸运的是,您可以通过
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}}" />