我使用Xceeed Wpf Toolkit
和IntegerUpDown
:
xmlns:XceedToolkit="clr-namespace:Xceed.Wpf.Toolkit;assembly=Xceed.Wpf.Toolkit"
<XceedToolkit:IntegerUpDown Grid.Column="1" Value="{Binding SelectedYear}" HorizontalAlignment="Stretch" VerticalAlignment="Center"/>
但是,当我右键单击此控件时,请执行以下操作:
如果我右键点击像TextBox
这样的anohter控件,它看起来很正常。
你能帮我解决一下吗?
答案 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>