Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 菜单项勾选和取消勾选_Wpf_Menu_Checked_Unchecked - Fatal编程技术网

Wpf 菜单项勾选和取消勾选

Wpf 菜单项勾选和取消勾选,wpf,menu,checked,unchecked,Wpf,Menu,Checked,Unchecked,我希望菜单是这样工作的:当我点击菜单中的任何项目时,它会被选中。现在,当我从同一菜单中选择另一个项目时,先前选择的项目将被取消选中,新选择的项目将显示为选中 <DockPanel.Resources> <Style TargetType="{x:Type MenuItem}"> <EventSetter Event="Click" Handler="Onfilter_Click" /> </Style> </D

我希望菜单是这样工作的:当我点击
菜单中的任何项目时,它会被选中。现在,当我从同一
菜单
中选择另一个项目时,先前选择的项目将被取消选中,新选择的项目将显示为选中

<DockPanel.Resources>
    <Style TargetType="{x:Type MenuItem}">
        <EventSetter Event="Click" Handler="Onfilter_Click" />
    </Style>
</DockPanel.Resources>

<Menu DockPanel.Dock="Top" >
    <MenuItem x:Name="filtermenu" Header="_FilterType" BorderBrush="White" >
        <MenuItem Header="ShowAll" IsChecked="True" />
        <MenuItem Header="FirstPage" />
        <MenuItem Header="Secondpage"  InputGestureText="Alt+F3" />
    </MenuItem>
</Menu>

因此,您希望选中多个单击的项目
?@WPF it,不,不是这样,如果我选中了一个项目,那么所有其他项目都必须
未选中
,那么在您的情况下会发生什么?如果我执行上述代码
ShowAll
菜单项,默认情况下会选中,现在当我单击
第一页
时,
ShowAll
menuitem未选中,这是正确的,但是
FirstPage
menuitem未选中。我想不出解决办法
Private Sub Onfilter_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
        Dim b As MenuItem = TryCast(sender, MenuItem)

        If Not obj Is Nothing Then

            For i As Integer = 0 To filtermenu.Items.Count - 1

                Dim mni As System.Windows.Controls.MenuItem = DirectCast(filtermenu.Items(i), System.Windows.Controls.MenuItem)
                Dim s As String = mni.Header

                If Not s = b.Header Then
                    If mni.IsChecked Then
                        mni.IsChecked = False
                    End If
                Else
                    If Not mni.IsChecked Then
                        mni.IsChecked = True
                    End If
                End If
            Next
            ' b.IsChecked = True
            obj.FilterImages(b.Header)
        End If
    End Sub