Выровнять по левому краю содержимое кнопки UWP. - PullRequest
0 голосов
/ 02 июля 2019

Я не могу выровнять по левому краю содержимое Flyout.

enter image description here

Похоже, что Windows автоматически выравнивает всплывающее меню, отображаемое в правой части окна. Я попытался установить свойство HorizontalAlignment дочерних элементов, задать свойство Flyout.FlyoutPresenterStyle HorizontalContentAlignment и другие свойства HorizontalContentAlignment, но безуспешно.

<StackPanel Orientation="Horizontal"
            FlowDirection="RightToLeft">
   <!-- Settings menu -->
   <Button.Flyout>
      <Flyout>
         <Flyout.FlyoutPresenterStyle>
            <Style TargetType="FlyoutPresenter">
               <Setter Property="ScrollViewer.HorizontalScrollMode" Value="Disabled"/>
               <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled"/>
               <Setter Property="HorizontalContentAlignment" Value="Left"/><!-- No -->
            </Style>
         </Flyout.FlyoutPresenterStyle>
         <StackPanel HorizontalAlignment="Left"><!-- No -->
            <TextBlock HorizontalAlignment="Left" HorizontalTextAlignment="Left">Settings</TextBlock><!-- No -->
            …
   </Button.Flyout>
</StackPanel>

Я ожидаю, что содержимое выпадающего меню выровняется по левому краю, но оно останется справа.

1 Ответ

0 голосов
/ 03 июля 2019

Создание воспроизводимого примера заставило меня осознать мою ошибку. Свойство FlowDirection было случайно установлено как RightToLeft в родительском StackPanel. Возврат этого решает проблему.

...