FrameworkElement.FlowDirection Свойство

Определение

Получает или задает направление, в котором поток текста и других элементов пользовательского интерфейса в любом родительском элементе, который управляет их макетом. Это свойство может иметь значение LeftToRight или RightToLeft. FlowDirection Параметр RightToLeft для любого элемента задает выравнивание справа, порядок чтения справа налево и макет элемента управления, который будет передаваться справа налево.

public:
 property FlowDirection FlowDirection { FlowDirection get(); void set(FlowDirection value); };
FlowDirection FlowDirection();

void FlowDirection(FlowDirection value);
public FlowDirection FlowDirection { get; set; }
var flowDirection = frameworkElement.flowDirection;
frameworkElement.flowDirection = flowDirection;
Public Property FlowDirection As FlowDirection
<frameworkElement FlowDirection="flowDirectionMemberName"/>

Значение свойства

Направление потока текста и других элементов пользовательского интерфейса в родительском элементе в качестве значения перечисления. Значение по умолчанию — LeftToRight.

Примеры

В этом примере XAML показано, как контейнер макета, например Grid , интерпретирует значение RightToLeft. Если вы посмотрите на пользовательский интерфейс, создаваемый этим XAML, прямоугольник Chartreuse отображается в правом верхнем углу, а не в левом верхнем углу, как это было бы, когда FlowDirection используется значение по умолчанию LeftToRight.

<Grid FlowDirection="RightToLeft">
    <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition/>
        <RowDefinition/>
    </Grid.RowDefinitions>
    <Rectangle Fill="Chartreuse" Width="30" Height="30"/>
    <Rectangle Grid.Row="1" Fill="Purple" Width="30" Height="30"/>
    <Rectangle Grid.Column="1" Fill="Pink" Width="30" Height="30"/>
    <Rectangle Grid.Row="1" Grid.Column="1" Fill="Orange" Width="30" Height="30"/>
</Grid>

Комментарии

FlowDirection предназначен для поддержки макета справа налево для приложений. В основном параметр FlowDirectionRightToLeft должен создавать соответствующее поведение справа налево и отрисовку любого элемента управления XAML, к которому он применяется. Определенные элементы управления XAML могут иметь дополнительную обработку в своих шаблонах или логике, которая реагирует FlowDirectionRightToLeft на это не указано в этом разделе, и это может быть отмечено в справочных разделах для этих элементов управления XAML.

Объект наследует FlowDirection значение от родительского элемента в дереве объектов. Любой элемент может переопределить значение, полученное из родительского элемента. Если значение не указано, используется LeftToRightзначение FlowDirection по умолчанию.

FlowDirection Если значение объекта имеет значениеRightToLeft, определенные значения и поведение FrameworkElement изменится:

  • В элементе кадр координат ссылки перевернут по горизонтали таким образом, что "(0, 0)" будет правым верхним углом. Это влияет на значения, возвращаемые api теста попадания, например FindElementsInHostCoordinates.
  • Если FrameworkElement представляет собой путь или другую фигуру, его визуальное содержимое перевернуто по горизонтали.
  • Для контейнеров макетов кадр координат ссылочных изменений. "(0, 0)" на холсте является правым верхним углом. Столбец "0" в сетке для целей Grid.Column является самым правым столбцом.
  • В состав шаблона элемента управления применяются те же изменения макета. Например, если вы задаете FlowDirectionRightToLeft значение для RadioButton, рисунок кнопки с возможностью нажатия будет отображаться справа от содержимого текстовой метки, так как сетка в шаблоне RadioButton теперь обрабатывает "0" как самый правый столбец, а текстовая метка выровнена по правому краю.
  • Изображение имеет особое поведение, см. раздел "FlowDirection для изображения" ниже.

Текст в текстовых контейнерах, таких как TextBlock или TextBox , не перевернут по горизонтали FlowDirectionRightToLeft, ни целой строкой, ни отдельными символами или глифами. Порядок встроенных элементов в InlineCollection не изменяется. Это позволяет смешивать содержимое в другом приложении справа налево, например, включая преднамеренные строки английского языка в арабском пользовательском интерфейсе. Любая строка, предназначенная для текстового контейнера, где предполагаемый язык является языком справа налево, должен указать строку в соответствующем представлении Юникода, которая будет правильно представлена в текстовом контейнере. Однако значение типа "как RightToLeft в текстовом контейнере" изменяет значение FlowDirectiontextAlignment по умолчанию, чтобы правый край текста был выровнен по правому краю с границами текстового контейнера.

FlowDirection не имеет видимого влияния на текст в элементе Glyphs , но изменяет тест на попадание элемента и кадр координат ссылок.

FlowDirection для изображения и MediaElement

Если вы задаете FlowDirectionRightToLeft значение для изображения, визуальное содержимое изображения перевернуто по горизонтали. Однако элемент Image не наследует FlowDirection значение от родительского элемента. Как правило, требуется только поведение перелистывания изображений в изображениях, относящихся к макету, но не обязательно к элементам с внедренным текстом или другими компонентами, которые не имеют смысла перевернутые для аудитории справа налево. Чтобы получить поведение перевернутого изображения, необходимо задать элемент в элементе Image специально RightToLeftили задать FlowDirectionFlowDirection свойство в коде программной части. Рассмотрите возможность идентификации элемента Image директивой x:Uid и указанием FlowDirection значений в качестве ресурса RESW, чтобы специалисты по локализации могли изменить это значение позже, не изменив XAML или код.

MediaPlayerElement также не наследует FlowDirection значение от родительского элемента. Если вы явно задаете FlowDirection значение RightToLeftMediaPlayerElement, область представления мультимедиа перевернута по горизонтали, аналогично тому, как изображение сворачивается. Это намеренно должно быть еще более редким, чем image, так как, скорее всего, любой источник мультимедиа, используемый в локализованном содержимом, уже имеет любые проблемы справа налево, исправленные в исходном файле мультимедиа.

FlowDirection для WebView и WebViewBrush

WebView и WebViewBrush не способствуют загрузке HTML-кода справа налево. Если в html-содержимом есть какие-либо рекомендации слева направо, рекомендуется задать директиву x:Uid в элементе WebView и указать любое значение WebView.Source Uniform Resource Identifier (URI) в виде ресурса RESW в строковой форме. WebView и WebViewBrush также не наследуют FlowDirection от родительских элементов. Параметр FlowDirectionwebView и WebViewBrush не вызывает исключений, но любое заданное значение игнорируется средой выполнения.

Применяется к

См. также раздел