none
关于MenuItem不显示的问题 RRS feed

  • 问题

  • 代码如下:
    <StackPanel Orientation="Vertical"
                                Background="Gray"
                                Width="140">
                        <MenuItem Header="Share"
                                  Height="24">
                            <MenuItem Header="Google+"
                                      Height="24" />
                            <MenuItem Header="Facebook"
                                      Height="24" />
                            <MenuItem Header="Twitter"
                                      Height="24"/>
                        </MenuItem
    </StackPanel>
    其中,Share菜单可以显示,而且也看得到菜单右边的小三角形。可以为什么Share的子菜单不显示出来呢?

    825386224@qq.com

    2015年1月26日 3:36

答案

  • 你好,

    你可以试下以下代码来添加一个事件:

    <Window x:Class="MenuTest1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MenuTest1" Height="300" Width="300">
        <Grid>
            <StackPanel Orientation="Vertical"
                                Background="Gray"
                                Width="140">
                <MenuItem Header="Share"
                                  Height="24" MouseMove="MenuItem_MouseMove">
                    <MenuItem Header="Google+"
                                      Height="24" Background="Blue" />
                    <MenuItem Header="Facebook"
                                      Height="24" />
                    <MenuItem Header="Twitter"
                                      Height="24"/>
                </MenuItem>
    
            </StackPanel>  
        </Grid>
    </Window>
    

    然后在事件里写:

    VB:

    Public Class MenuTest1
    
        Private Sub MenuItem_MouseMove(sender As Object, e As MouseEventArgs)
    
            Dim menuItem As MenuItem = DirectCast(sender, MenuItem)
            menuItem.IsSubmenuOpen = True
    
        End Sub
    End Class
    

    C#:

    void MenuItem_MouseMove(object sender, MouseEventArgs e) 
    {
     
    MenuItem menuItem = (MenuItem)sender; 
    menuItem.IsSubmenuOpen =
    true; 
    }
    

    原因大概是你用的是MenuItem,里面没有类似Menu里面的事件,所以我们要自己写,当然这只是我的猜测。



    Barry
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2015年1月27日 8:17
    版主

全部回复

  • 你好,

    你可以试下以下代码来添加一个事件:

    <Window x:Class="MenuTest1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MenuTest1" Height="300" Width="300">
        <Grid>
            <StackPanel Orientation="Vertical"
                                Background="Gray"
                                Width="140">
                <MenuItem Header="Share"
                                  Height="24" MouseMove="MenuItem_MouseMove">
                    <MenuItem Header="Google+"
                                      Height="24" Background="Blue" />
                    <MenuItem Header="Facebook"
                                      Height="24" />
                    <MenuItem Header="Twitter"
                                      Height="24"/>
                </MenuItem>
    
            </StackPanel>  
        </Grid>
    </Window>
    

    然后在事件里写:

    VB:

    Public Class MenuTest1
    
        Private Sub MenuItem_MouseMove(sender As Object, e As MouseEventArgs)
    
            Dim menuItem As MenuItem = DirectCast(sender, MenuItem)
            menuItem.IsSubmenuOpen = True
    
        End Sub
    End Class
    

    C#:

    void MenuItem_MouseMove(object sender, MouseEventArgs e) 
    {
     
    MenuItem menuItem = (MenuItem)sender; 
    menuItem.IsSubmenuOpen =
    true; 
    }
    

    原因大概是你用的是MenuItem,里面没有类似Menu里面的事件,所以我们要自己写,当然这只是我的猜测。



    Barry
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2015年1月27日 8:17
    版主
  • 谢谢你的回答。

    可以这样解决。

    我在网上看到的解释是:MenuItem的子项是否显示,最后是要通过Menu来处理。

    但是这里没有Menu,所以子菜单显示不出来。

    希望可以给以后遇到同样问题的朋友一些帮助。


    825386224@qq.com

    2015年1月27日 12:42