2016-11-23 43 views
-1

我的WPF菜单出现了问题。问题是我在里面使用了一个扩展器和一个菜单。当我然后想要添加此菜单项的子项时,我只是创建了它,并且在运行应用程序之前,它在预览中正常显示。但是,当我运行应用程序时,我无法单击菜单访问该子项目。我究竟做错了什么?WPF - 菜单显示正确,但不能点击它...(C#)

这里是(使用C#)我的WPF代码:

<Expander Header="Handle" 
      FontSize="15" 
      BorderBrush="Black" 
      Margin="3,0,2,1"> 
    <Menu Background="White"> 
    <VirtualizingStackPanel Orientation="Vertical"> 
     <MenuItem x:Name="MenuArticle" 
       Header="Article" 
       Height="25" 
       FontSize="13" 
       Width="177" 
       Click="MenuArticle_Click"> 
     <MenuItem x:Name="menuNewArticle" 
       Header="New article" 
       Height="25" 
       FontSize="13" 
       Width="187"/> 
     <MenuItem x:Name="menuHandleArticle" 
       Header="Handle article" 
       Height="25" 
       FontSize="13" 
       Width="187"/> 
    </VirtualizingStackPanel> 
    </Menu> 
</Expander> 

我希望它看起来像这样,甚至当我运行应用程序

enter image description here

+0

'VirtualizingStackPanel'就是你做错了。曾经考虑过*评论*代码并再次测试?当你面临问题时,这是很常见的事情。 – Jim

回答

1

没有必要使用StackPanel,只需将适用项添加到Menu'sItems属性

<Expander Header="Handle" FontSize="15" BorderBrush="Black" Margin="3,0,2,1"> 
    <Menu Background="White"> 
     <Menu.Items> 
      <MenuItem x:Name="MenuArticle" Header="Article" Height="25" FontSize="13" Width="177"> 
       <MenuItem.Items> 
        <MenuItem x:Name="menuNewArticle" Header="New article" Height="25" FontSize="13" Width="187" /> 
        <MenuItem x:Name="menuHandleArticle" Header="Handle article" Height="25" FontSize="13" Width="187"/> 
       </MenuItem.Items> 
      </MenuItem> 
     </Menu.Items> 
    </Menu> 
</Expander> 

编辑: 如果你想要设置的菜单项的位置,看到这一点:

How do get menu to open to the left in WPF?

你需要修改的弹出位置。

+0

嗨,这项工作,但结果是像以前一样,它打开verticaly而不是水平。是否有任何突击队员使用水平线而不是垂直线开始工作?任何一种方向? – Huezzer

+0

@Huezzer您可以继续使用附加属性设置方向。看到我更新的答案 –