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"/>

Но, когда я делаю правый клик на этом элементе управления, возьмите это:

xceed IntegerUpdown controlContextMenu

Если я сделаю правый клик на другом контроле, как 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>
Другие вопросы по тегам