xceed IntegerUpDown: смещенные значения контекстного меню
Я использую 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
это выглядит нормально. Можете ли вы помочь мне исправить это?
1 ответ
В соответствии с TextFlignment WPF Textbox изменяет выравнивание его элемента контекстного меню по умолчанию, вы должны перестроить контекстное меню, так как значение по умолчанию не может быть изменено.
<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>