代码之家  ›  专栏  ›  技术社区  ›  Nikos Tsokos

wpf怪异菜单项可见性问题

  •  1
  • Nikos Tsokos  · 技术社区  · 16 年前

    我有一个简单的场景,其中我隐藏并显示一个标志 MenuItem 在一个 ContextMenu 如下图所示:

    Xaml:

    <Window x:Class="Window1"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="Window1" Height="300" Width="300">
        <Window.ContextMenu>
            <ContextMenu Name="mainMnu">
                <MenuItem Name="mnu" Header="Testing"/>
            </ContextMenu>
        </Window.ContextMenu>
    
        <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
            <Button HorizontalAlignment="Left" Margin="52,131,0,108" Name="Button1"
                    Width="75">Button</Button>
        </Grid>
    </Window>
    

    Private Sub Button1_Click(ByVal sender As System.Object,
                              ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click
        If mnu.Visibility = Windows.Visibility.Visible Then
            mnu.Visibility = Windows.Visibility.Collapsed
            mainMnu.Visibility = Windows.Visibility.Collapsed
        Else
            mnu.Visibility = Windows.Visibility.Visible
            mainMnu.Visibility = Windows.Visibility.Visible
        End If
    
    End Sub
    

    问题是每隔一次我按下 Button 这个 梅努伊特姆 没有显示。右键单击仅显示一个小的空矩形(就像有一个可见的菜单,但没有一个可见的菜单 梅努伊特姆 ).

    有什么想法吗?

    1 回复  |  直到 14 年前
        1
  •  3
  •   SLaks    16 年前

    Visibility 这是错误的做法。

    ContextMenu 财产 Nothing .

    If ContextMenu Is Nothing Then
        ContextMenu = mainMnu
    Else
        ContextMenu = Nothing
    End If