WPF Menu displays to the left of the window

2019-02-17 18:08发布

I have a simple Menu in a DockPanel. Here is the XAML:

<Window x:Class="WpfApplication1.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">
<DockPanel>
    <Menu DockPanel.Dock="Top">
        <MenuItem Name="file" Header="_File">
            <MenuItem Name="exitMenuItem" Header="E_xit"/>
        </MenuItem>
    </Menu>
    <Grid>
    </Grid>
</DockPanel>

Why does the Menu drop down to the left instead of the right of the window border like most applications?

screenshot of Window

标签: wpf xaml menu
2条回答
贪生不怕死
2楼-- · 2019-02-17 18:28

It appears that you have a tablet input device. Follow the instructions in this link to change the handedness in your Tablet PC Settings:

查看更多
一夜七次
3楼-- · 2019-02-17 18:28

A fix that worked for me was:

        var ifLeft = SystemParameters.MenuDropAlignment;
        if (ifLeft)
        {
            // change to false
            var t = typeof(SystemParameters);
            var field = t.GetField("_menuDropAlignment", BindingFlags.NonPublic | BindingFlags.Static);
            field.SetValue(null, false);
            ifLeft = SystemParameters.MenuDropAlignment;
        }

Credit: https://www.telerik.com/forums/popup-is-opening-to-outside-window-in-splitbutton

查看更多
登录 后发表回答