xceed IntegerUpDown:移动上下文菜单值

xceed IntegerUpDown: shifted context menu values

我使用 Xceeed Wpf ToolkitIntegerUpDown:

 xmlns:XceedToolkit="clr-namespace:Xceed.Wpf.Toolkit;assembly=Xceed.Wpf.Toolkit"

 <XceedToolkit:IntegerUpDown Grid.Column="1" Value="{Binding SelectedYear}" HorizontalAlignment="Stretch" VerticalAlignment="Center"/>

但是,当我右击这个控件时,采取这个:

如果我右击 TextBox 之类的其他控件,它看起来很正常。 你能帮我修一下吗?

根据 WPF Textbox's TextAlignment changes its default context menu item's alignment as well,您必须重建上下文菜单,因为默认设置无法更改。

<XceedToolkit:IntegerUpDown>
    <XceedToolkit:IntegerUpDown.ContextMenu>
            <ContextMenu TextBlock.TextAlignment="Left">
                <MenuItem Command="ApplicationCommands.Copy" />
                <MenuItem Command="ApplicationCommands.Cut" />
                <MenuItem Command="ApplicationCommands.Paste" />
            </ContextMenu>
    </XceedToolkit:IntegerUpDown.ContextMenu>
</XceedToolkit:IntegerUpDown>

该问题并非特定于 XceedToolkit:IntegerUpDown,而是适用于具有默认上下文菜单和 TextAlignment 属性 的许多控件。

如果您更愿意使用样式而不是替换上下文菜单,那么您最好的目标可能是 Popup,因为上下文菜单元素在内部 类 某处,所以为他们创建样式不会开箱即用。

<XceedToolkit:IntegerUpDown>
    <xt:IntegerUpDown.Resources>
        <Style TargetType="Popup">
            <Setter Property="TextBlock.TextAlignment" Value="Left"/>
        </Style>
    </xt:IntegerUpDown.Resources>
</xt:IntegerUpDown>