以下是满足您测试需求的xaml代码。
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="200" Width="325">
<Grid>
<RadioButton x:Name="RadioButton1" IsChecked="True" GroupName="MyGroup" Content="Select" Margin="0,10,0,0"/>
<RadioButton x:Name="RadioButton2" GroupName="MyGroup" Content="Select" Margin="0,30,0,0"/>
<Menu x:Name="Menu1" HorizontalAlignment="Left" Margin="0,50,0,0">
<MenuItem x:Name="MenuItem1" Header="Saving">
<MenuItem x:Name="MenuItem2" Header="Save"/>
<MenuItem x:Name="MenuItem3" Header="Don't save"/>
</MenuItem>
</Menu>
</Grid>
</Window>
以下代码效果很好。
Class MainWindow
Private Sub RadioButton1_Unchecked(sender As Object, e As RoutedEventArgs) Handles RadioButton1.Unchecked
Menu1.IsEnabled = False
End Sub
End Class
以下代码不正在运行。你知道为什么吗?
Class MainWindow
Private Sub RadioButton1_Checked(sender As Object, e As RoutedEventArgs) Handles RadioButton1.Checked
Menu1.IsEnabled = True
End Sub
End Class
错误图片:
答案 0 :(得分:0)
因为RadioButton
节点位于Menu
节点之上。 Checked
事件将在Menu1
创建之前发生。
您必须检查Menu1
不是null
。
if (null != Menu1)
Menu1.IsEnabled = true;
将IsEnabled="True"
放置到Menu
节点以获取默认状态。
<Menu x:Name="Menu1" IsEnabled="True" HorizontalAlignment="Left" Margin="0,50,0,0">