c# - WPF 可检查菜单项中缺少复选标记

标签 c# wpf mahapps.metro

我正在尝试使用可检查的菜单项。但复选标记不起作用。 这是代码

<MenuItem Header="Switch to...">
   <MenuItem IsCheckable="True" IsChecked="True" Header="Stroke-Based" StaysOpenOnClick="True" />
   <MenuItem IsCheckable="True" IsChecked="True" Header="Color-Transfer" StaysOpenOnClick="True" />
</MenuItem>

enter image description here

我哪里做错了?

最佳答案

我在使用 Mahapps 自定义菜单项时遇到了完全相同的问题。这是我添加的用于处理现有菜单项 xaml 的 IsChecked 触发器的代码-

添加此“CheckMarkPanel”网格并删除图标网格。或者,您可以保留两者,但我删除了我的。

<Grid Grid.Column="0"
      Margin="6,0,6,0"
      x:Name="CheckMarkPanel"
      VerticalAlignment="Center"
      HorizontalAlignment="Center"
      Visibility="Collapsed">
    <Path x:Name="CheckMarkPath"
        Width="7" Height="7"
        Visibility="Hidden"
        SnapsToDevicePixels="False"
        Stroke="#cccccc"
        Fill="Green"
        StrokeThickness="2"
        Data="M 0 0 L 7 7 M 0 7 L 7 0" />
</Grid>

添加这些多重触发条件 -

<MultiTrigger>
    <MultiTrigger.Conditions>
        <Condition Property="IsChecked"
                   Value="true" />
        <Condition Property="Role"
                   Value="SubmenuItem" />
    </MultiTrigger.Conditions>
    <Setter TargetName="CheckMarkPath"
            Property="Visibility"
            Value="Visible" />
</MultiTrigger>
<MultiTrigger>
    <MultiTrigger.Conditions>
        <Condition Property="IsCheckable"
                   Value="true" />
        <Condition Property="Role"
                   Value="SubmenuItem" />
    </MultiTrigger.Conditions>
    <Setter TargetName="CheckMarkPanel"
            Property="Visibility"
            Value="Visible" />
</MultiTrigger>

并折叠 TopLevelHeader/TopLevelItem/subMenutItem 的所有 CheckMarkPanel 可见性。

关于c# - WPF 可检查菜单项中缺少复选标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29234024/

相关文章:

c# - 为我覆盖 Mahapps Metro 风格标题 Tabitem

c# - 什么是支持 LINQ 的 "mobile".NET 数据库?

c# - SmtpClient.SendMailAsync 在抛出特定异常时导致死锁

c# - MVVM Binding popover isOpen in datagrid

c# - 如何从文本框禁用 Datagrid 之间的更新?

c# - GridCell 中的 NumericUpDown - WPF

c# - 从 MVC 4 Web Api 返回匿名类型失败并出现序列化错误

C# ICommand 可以执行

c# - 从其他ViewModel调用方法

c# - Mahapps,不适用于用户控件的主题