2016-11-23 63 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您可以繼續使用附加屬性設置方向。看到我更新的答案 –