FrameworkElement.FlowDirection 속성

정의

레이아웃을 제어하는 부모 요소 내에서 텍스트 및 기타 UI 요소가 흐르는 방향을 가져오거나 설정합니다. 이 속성은 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"/>

속성 값

텍스트 및 기타 UI 요소가 부모 요소 내에서 열거형 값으로 흐르는 방향입니다. 기본값은 LeftToRight입니다.

예제

이 XAML 예제에서는 Grid 와 같은 레이아웃 컨테이너가 RightToLeft 값을 해석하는 방법을 보여 줍니다. 이 XAML에서 생성하는 UI를 보면 FlowDirection이 기본 LeftToRight일 때처럼 왼쪽 위가 아니라 오른쪽 위에 "Chartreuse" 사각형이 나타납니다.

<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은 앱의 오른쪽에서 왼쪽 레이아웃을 지원하기 위한 것입니다. 기본적으로 FlowDirection을 RightToLeft 로 설정하면 적절한 오른쪽에서 왼쪽으로 동작을 생성하고 적용된 모든 XAML 컨트롤을 렌더링해야 합니다. 특정 XAML 컨트롤은 이 항목에 언급되지 않은 RightToLeft의 FlowDirection에 응답하는 템플릿 또는 논리 내에서 추가로 처리될 수 있으며, 이러한 XAML 컨트롤에 대한 참조 topics 설명될 수 있습니다.

개체는 개체 트리의 부모로부터 FlowDirection 값을 상속합니다. 모든 요소는 부모로부터 가져오는 값을 재정의할 수 있습니다. 지정하지 않으면 기본 FlowDirectionLeftToRight입니다.

개체의 FlowDirection 값이 RightToLeft이면 FrameworkElement 의 특정 값과 동작이 변경됩니다.

  • 요소 내에서 참조의 좌표 프레임은 "(0, 0)"가 오른쪽 위 모서리가 되도록 가로로 대칭 이동합니다. 이는 FindElementsInHostCoordinates와 같은 적중 테스트 API에서 반환되는 값에 영향을 줍니다.
  • FrameworkElement경로 또는 다른 셰이프인 경우 시각적 콘텐츠가 가로로 대칭 이동됩니다.
  • 레이아웃 컨테이너의 경우 참조의 좌표 프레임이 변경됩니다. 캔버스의 "(0, 0)"은 오른쪽 위 모서리입니다. Grid.Column을 위해 Grid의 "0" 열은 가장 오른쪽 열입니다.
  • 컨트롤의 템플릿 컴퍼지션 내에서 동일한 레이아웃 변경 내용이 적용 됩니다. 예를 들어 RadioButton에 대해 FlowDirection을 RightToLeft로 설정하면 RadioButton 템플릿 내의 Grid가 이제 "0"을 가장 오른쪽 열로 처리하고 텍스트 레이블이 오른쪽 맞춤되기 때문에 클릭 가능한 단추 그래픽이 텍스트 레이블 콘텐츠의 오른쪽에 표시됩니다.
  • 이미지 에는 특별한 동작이 있습니다. 아래의 "이미지용 FlowDirection" 섹션을 참조하세요.

FlowDirection이 RightToLeft인 경우 TextBlock 또는 TextBox와 같은 텍스트 컨테이너의 텍스트는 가로로 대칭 이동되지 않으며 전체 문자열이나 개별 문자 또는 문자 모양은 대칭 이동되지 않습니다. InlineCollection인라인 요소 순서도 변경되지 않습니다. 이렇게 하면 아랍어 UI에 고의적인 영어 문자열을 포함하는 등 오른쪽에서 왼쪽에 있는 앱의 콘텐츠를 혼합할 수 있습니다. 의도한 언어가 오른쪽에서 왼쪽 언어인 텍스트 컨테이너의 텍스트 원본이 될 문자열은 해당 문자열을 적절한 유니코드 표현으로 지정해야 합니다. 이 문자열은 텍스트 컨테이너에 올바르게 표시됩니다. 그러나 텍스트 컨테이너에서 RightToLeft 인 FlowDirection 값은 텍스트의 오른쪽 가장자리가 텍스트 컨테이너 경계에 오른쪽 맞춤되도록 기본 TextAlignment 값을 변경합니다.

FlowDirection은 문자 모양 요소의 텍스트에 표시되는 영향을 주지 않지만 요소의 적중 테스트 및 참조 좌표 프레임을 변경합니다.

이미지 및 MediaElement용 FlowDirection

FlowDirection을 이미지에 대해 RightToLeft로 설정하면 이미지의 시각적 콘텐츠가 가로로 대칭 이동됩니다. 그러나 Image 요소는 부모 요소에서 FlowDirection 값을 상속하지 않습니다. 일반적으로 레이아웃과 관련된 이미지에서 이미지 대칭 이동 동작만 원하지만, 텍스트가 포함된 요소나 오른쪽에서 왼쪽으로 대칭 이동한 대상 그룹에게는 의미가 없는 기타 구성 요소가 반드시 필요한 것은 아닙니다. 이미지 대칭 이동 동작을 얻으려면 Image 요소의 FlowDirection 요소를 특히 RightToLeft로 설정하거나 코드 숨김에서 FlowDirection 속성을 설정해야 합니다. 지역화 전문가가 나중에 XAML 또는 코드를 변경하지 않고 이 값을 변경할 수 있도록 x:Uid 지시문으로 Image 요소를 식별하고 FlowDirection 값을 RESW 리소스로 지정하는 것이 좋습니다.

MediaElement 는 부모 요소에서 FlowDirection 값을 상속하지 않습니다. MediaElement에서 FlowDirection을 RightToLeft로 명시적으로 설정하면 미디어 보기 영역이 이미지 대칭 이동 방식과 유사하게 가로로 대칭 이동됩니다. 지역화된 콘텐츠에 사용되는 모든 미디어 원본에 이미 원본 미디어 파일에서 수정된 오른쪽에서 왼쪽 문제가 있을 가능성이 높기 때문에 의도적으로 이 작업을 수행하는 것은 이미지보다 훨씬 드물어야 합니다.

WebView 및 WebViewBrush용 FlowDirection

WebViewWebViewBrush 는 HTML이 로드되는 방식에 대한 오른쪽에서 왼쪽 정보를 승격하지 않습니다. HTML 콘텐츠에 왼쪽에서 오른쪽 고려 사항이 있는 경우 WebView 요소에서 x:Uid 지시문을 설정하고 WebView.Source URI(Uniform Resource Identifier) 값을 문자열 형식 RESW 리소스로 지정하는 것이 좋습니다. 또한 WebViewWebViewBrush 는 부모 요소에서 FlowDirection을 상속하지 않습니다. WebView 및WebViewBrush에서 FlowDirection을 설정해도 예외가 발생하지 않지만 설정한 값은 런타임에서 무시됩니다.

적용 대상

추가 정보