FrameworkElement.FlowDirection 속성

정의

레이아웃을 제어하는 부모 요소 내에서 텍스트 및 기타 UI 요소가 흐르는 방향을 가져오거나 설정합니다. 이 속성은 또는 RightToLeftLeftToRight 설정할 수 있습니다. FlowDirectionRightToLeft 모든 요소에서 를 로 설정하면 오른쪽 맞춤, 읽기 순서가 오른쪽에서 왼쪽으로, 컨트롤 레이아웃이 오른쪽에서 왼쪽으로 흐릅니다.

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를 보면 "Chartreuse" 사각형이 기본 LeftToRight인 경우 FlowDirection 처럼 왼쪽 위가 아니라 오른쪽 위에 나타납니다.

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

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

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

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

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

FlowDirection문자 모양 요소의 텍스트에 표시되는 효과가 없지만 요소의 적중 횟수 테스트 및 참조 좌표 프레임을 변경합니다.

이미지 및 MediaElement용 FlowDirection

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

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

WebView 및 WebViewBrush용 FlowDirection

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

적용 대상

추가 정보