【问题标题】:MenuItem within MenuItem not using all available spaceMenuItem 中的 MenuItem 未使用所有可用空间
【发布时间】:2020-06-20 00:41:40
【问题描述】:

我有一个包含菜单项数据模板的菜单项。问题是其中的菜单项没有占用右侧的所有可用空间。有什么办法可以解决这个问题吗?

<MenuItem Header="Test" ItemsSource="{Binding DataContext.Test, Source={x:Reference TestControl}}"
                                                      Command="{Binding DataContext.Test_Click, Source={x:Reference TestControl}}">
                                                <MenuItem.ItemTemplate>
                                                    <DataTemplate>
                                                        <MenuItem Header="{Binding TestName}"
                                                                  Command="{Binding DataContext.Test_Click, Source={x:Reference TestControl}}"
                                                                  CommandParameter="{Binding TestId}">
                                                            <MenuItem.Icon>
                                                                <Ellipse Fill="{Binding TestId, Converter={StaticResource TestConverter}}"/>
                                                            </MenuItem.Icon>
                                                        </MenuItem>
                                                    </DataTemplate>
                                                </MenuItem.ItemTemplate>
                                            </MenuItem>

【问题讨论】:

    标签: wpf xaml


    【解决方案1】:

    您观察到的是default MenuItem's ControlTemplate 的内置列间距。

    强调以下罪魁祸首:

    这些列定义用于显示您可能对菜单项拥有的任何键盘快捷键,以及一些硬编码的 13 列填充(为什么?我不知道)。

    所以回答你的问题,如果你想占用右边的可用空间,你需要用你自己的不包括最后两个的 ControlTemplate 覆盖 MenuItem 的模板列定义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-29
      • 1970-01-01
      • 2014-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-27
      相关资源
      最近更新 更多