1
나는 다음과 같이 내가 숨기고 ContextMenu
에서 signle MenuItem
를 표시하는 간단한 시나리오가 있습니다WPF 이상한 MenuItem의 가시성 문제
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
문제는을 누를 때마다 MenuItem
이 표시되지 않습니다. 오른쪽 클릭은 작은 빈 사각형 만 보여줍니다. (보이는 메뉴가있는 것처럼 보이지만 보이지 않는 것은 MenuItem
입니다). 어떻게 든 순환 ... 처음 2 클릭 : 문제, 다음 2 클릭 OK 등등 ...
아이디어가 있으십니까?
...하지만 첨부 보이는 메뉴 아이템이 나던 경우의 ContextMenu이 전혀 발생하지 할 수있는 방법이 있다면 난 여전히 궁금합니다. – Entrodus
코드 숨김을 통해 메뉴 항목을 제어 할 수 있으므로 가시성 설정을 사용하여 컨텍스트 메뉴를 비활성화하거나 활성화 할 수 있습니까? 즉, 창을 만들 때 null로 설정하고 메뉴 항목을 표시 할 때 mainMnu로 설정합니까? 여기서 명백한 문제는 동적으로 상황을 보거나 보이지 않게 만들 수 있으므로 추적해야합니다. 이벤트를 통해 ContextMenu가 표시되는지 확인하고 있습니다. 나는 당신이 자식 menuitem 가시성을 검사하여 터널링 이벤트를 처리 할 수 있었으면 좋겠다. 그리고 처리 된 것을 envent로 설정했지만 짧게되었다. – Dave