xceed IntegerUpDown:移动的上下文菜单值

时间:2017-03-01 08:31:18

标签: c# wpf xceed

我使用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"/>

但是,当我右键单击此控件时,请执行以下操作:

xceed IntegerUpdown controlContextMenu

如果我右键点击像TextBox这样的anohter控件,它看起来很正常。 你能帮我解决一下吗?

1 个答案:

答案 0 :(得分:1)

根据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>