FrameworkElement.FlowDirection 屬性

定義

取得或設定文字和其他 UI 元素在控制其版面配置的任何父元素內流動的方向。 這個屬性可以設定為 LeftToRightRightToLeftRightToLeft在任何 FlowDirection 元素上設定為 ,會將對齊方式設定為右邊、從右至左的讀取順序,以及從右至左流動之控制項的配置。

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」 矩形會出現在右上方,而不是預設 的 。 FlowDirectionLeftToRight

<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 值。 任何專案都可以覆寫它從其父代取得的值。 如果未指定,則預設 FlowDirectionLeftToRight

FlowDirection如果物件 RightToLeft 上的值為 ,FrameworkElement的特定值和行為將會變更:

  • 在 元素中,參考的座標框架會水準翻轉,讓「 (0, 0) 」 成為右上角。 這會影響點擊測試 API 所傳回的值,例如 FindElementsInHostCoordinates
  • 如果 FrameworkElementPath 或其他 Shape,則會水準翻轉其視覺內容。
  • 針對版面配置容器,參考座標框架會變更。 畫布中的 「 (0, 0) 」 是右上角。 Grid.Column的 「0」 資料行是最右邊的資料行。
  • 在控制項的範本組合中,會套用相同的版面配置變更。 例如,如果您設定 FlowDirectionRightToLeftRadioButton,可點選的按鈕圖形會顯示在文字標籤內容的右邊,因為RadioButton範本內的Grid現在會將 「0」 視為最右邊的資料行,且文字標籤靠右對齊。
  • Image has a special behavior, see "FlowDirection for Image" section below.

TextBlockTextBox等文字容器中的文字,如果 FlowDirectionRightToLeft ,則不會翻轉整個字串,也不會翻轉個別字元或字元。 InlineCollection中的內嵌專案順序不會變更。 這可讓您在從右至左的應用程式中混合內容,例如,在阿拉伯文 UI 中包含刻意的英文字串。 任何要做為文字容器文字來源的字串,其中預期語言是由右至左的語言,應該在適當的 Unicode 標記法中指定該字串,該字串會在文字容器中正確呈現。 不過,文字容器中的 值 FlowDirectionRightToLeft 會變更預設 TextAlignment 值,讓文字的右邊緣與文字容器界限靠右對齊。

FlowDirectionGlyphs 元素中的文字上沒有可見的效果,但確實會變更元素的點擊測試和座標參照框架。

Image 和 MediaElement 的 FlowDirection

如果您設定 FlowDirectionRightToLeftImage影像 的視覺內容會水準翻轉。 不過, Image 元素不會繼承 FlowDirection 任何父元素的值。 一般而言,您只需要在與版面配置相關的影像中執行影像翻轉行為,但不一定是具有內嵌文字或其他元件且對右至左物件而言不合理翻轉的元素。 若要取得影像翻轉行為,您必須特別將Image元素上的 元素設定 FlowDirectionRightToLeft ,或在程式碼後置中設定 FlowDirection 屬性。 請考慮使用x:Uid 指示詞來識別Image元素,並將值指定 FlowDirection 為 RESW 資源,讓您的當地語系化專家稍後可以變更此值,而不需變更 XAML 或程式碼。

MediaPlayerElement 也不會繼承 FlowDirection 任何父元素的值。 如果您在MediaPlayerElement上明確設定 FlowDirectionRightToLeft ,則媒體檢視區域會水準翻轉,類似于影像翻轉的方式。 這麼做應該比 Image更罕見,因為當地語系化內容中使用的任何媒體來源可能已經有來源媒體檔案中修正的任何由右至左的問題。

WebView 和 WebViewBrush 的 FlowDirection

WebViewWebViewBrush 不會將任何由右至左的資訊升階為 HTML 的載入方式。 如果 HTML 內容中有任何由左至右的考慮,請考慮在WebView元素上設定x:Uid 指示詞,並指定任何WebView.Source Uniform Resource Identifier (URI) 值做為字串格式 RESW 資源。 WebViewWebViewBrush 也不會從任何父元素繼承 FlowDirection。 在WebView 和 WebViewBrush上設定 FlowDirection 不會造成例外狀況,但執行時間會忽略您設定的任何值。

適用於

另請參閱