3

我一直在愉快地编写我的新程序,它的运行就像一个魅力。它很简单,一开始不需要菜单,直到我决定添加更多功能,所以需要菜单。呸!下图更好地解释了我的问题。

图片

注意到文件菜单是如何对齐的吗?图片中的应用程序是一个测试应用程序,只是为了查看我是否在其他应用程序中添加了可能导致问题的内容。即使该项目是全新的,它仍然出现。我不明白为什么会这样。有没有人经历过这个?由于某种原因,带有 set 命令的 MenuItems 也会被禁用。未设置的 MenuItems 不会。您可以看到上面显示的“退出”菜单项已禁用。在下面的代码中,它设置为“ApplicationCommands.Close”。

顺便说一句,我正在使用 Windows 7 x64 并使用 Visual Studio 2010 编写 WPF 应用程序。非常感谢您的帮助!提前致谢!

<Window x:Class="TestDrive.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Menu Height="23" HorizontalAlignment="Left" Name="menu1" VerticalAlignment="Top" Width="200">
            <MenuItem Header="File">
                <MenuItem Command="ApplicationCommands.Close" Header="Exit" />
            </MenuItem>
            <MenuItem Header="Edit" />
        </Menu>
    </Grid>
</Window>
4

2 回答 2

1

关于导致禁用菜单项的命令,如果没有相应的命令绑定,这是预期的。至于对齐问题,您是否尝试过不在 XAML 中设置显式大小?例如:

<Window x:Class="TestDrive.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow">
    <DockPanel>
        <Menu DockPanel.Dock="Top">
            <MenuItem Header="File">
                <MenuItem Command="ApplicationCommands.Close" Header="Exit" />
            </MenuItem>
            <MenuItem Header="Edit" />
        </Menu>
    </DockPanel>
</Window>
于 2011-01-06T23:54:34.207 回答
1

我知道这是一篇旧帖子,但问题与我几周前遇到的问题相似,我通过这条路线解决了它。

Windows 有一个 Touch/TabletPCs 设置,无论您是左撇子还是右撇子,您都可以在其中填写。这决定了上下文菜单的位置,以确保您的手没有覆盖菜单,以防触摸屏设备导致问题。

转到控制面板 --> 硬件和声音 --> 平板电脑。并在名为“其他”的第三个选项卡中选择左撇子。这会将菜单定位在菜单按钮的另一侧。

已编辑

似乎 DevilFisch 和我都在使用 Wacom 数位板,这可能是导致此问题的原因。使用 pentablet 或类似设备时,会触发 Tablet PC 设置,从而导致上述问题。

于 2013-11-29T13:03:55.000 回答