1

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問題は、を押すたびにMenuItem表示されないことです。右クリックすると、小さな空の長方形のみが表示されます。(目に見えるメニューはあるが、目に見える はないようにMenuItem)。それはどういうわけかサイクルで動作します...最初の2回のクリック:問題、次の2回のクリックでOK、など...

何か案は?

4

1 に答える 1

3

コンテキスト メニューを無効にしようとしている場合、それを設定するVisibilityのは間違った方法です。

代わりに、ContextMenuプロパティを に設定する必要がありますNothing

例えば:

If ContextMenu Is Nothing Then
    ContextMenu = mainMnu
Else
    ContextMenu = Nothing
End If
于 2009-12-10T14:05:55.980 に答える