FrameworkElement.FlowDirection Properti

Definisi

Mendapatkan atau mengatur arah di mana teks dan elemen UI lainnya mengalir dalam elemen induk apa pun yang mengontrol tata letaknya. Properti ini dapat diatur ke LeftToRight atau RightToLeft. Mengatur FlowDirection ke RightToLeft pada elemen apa pun mengatur perataan ke kanan, urutan baca ke kanan-ke-kiri dan tata letak kontrol untuk mengalir dari kanan ke kiri.

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"/>

Nilai Properti

Arah teks dan elemen UI lainnya mengalir dalam elemen induknya, sebagai nilai enumerasi. Nilai defaultnya adalah LeftToRight.

Contoh

Contoh XAML ini menggambarkan bagaimana kontainer tata letak seperti Grid menginterpretasikan nilai RightToLeft. Jika Anda melihat UI yang dihasilkan XAML ini, persegi panjang "Chartreuse" muncul di kanan atas, bukan kiri atas seperti yang terjadi ketika FlowDirection adalah LeftToRight default.

<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>

Keterangan

FlowDirection ditujukan untuk dukungan tata letak kanan-ke-kiri untuk aplikasi. Pada dasarnya, mengatur FlowDirection ke RightToLeft harus menghasilkan perilaku kanan-ke-kiri yang sesuai dan penyajian kontrol XAML apa pun yang diterapkannya. Kontrol XAML tertentu mungkin memiliki penanganan lebih lanjut dalam templat atau logika mereka yang merespons FlowDirection dari RightToLeft yang tidak dicatat dalam topik ini, dan ini mungkin dicatat dalam topik referensi untuk kontrol XAML tersebut.

Objek mewarisi nilai FlowDirection dari induknya di pohon objek. Elemen apa pun dapat mengambil alih nilai yang didapat dari induknya. Jika tidak ditentukan, FlowDirection default adalah LeftToRight.

Jika nilai FlowDirection pada objek adalah RightToLeft, nilai dan perilaku tertentu dari FrameworkElement akan berubah:

  • Dalam elemen , bingkai koordinat referensi dibalik secara horizontal sehingga "(0, 0)" akan menjadi sudut kanan atas. Ini memengaruhi nilai yang dikembalikan oleh API pengujian hit seperti FindElementsInHostCoordinates.
  • Jika FrameworkElement adalah Jalur atau Bentuk lainnya, konten visualnya dibalik secara horizontal.
  • Untuk kontainer tata letak, bingkai koordinat referensi berubah. "(0, 0)" di Kanvas adalah sudut kanan atas. Kolom "0" di Kisi untuk tujuan Grid.Column adalah kolom paling kanan.
  • Dalam komposisi templat kontrol, perubahan tata letak yang sama berlaku. Misalnya, jika Anda mengatur FlowDirection sebagai RightToLeft untuk RadioButton, grafik tombol yang dapat diklik akan muncul di sebelah kanan konten label teks, karena Kisi dalam templat RadioButton sekarang memperlakukan "0" sebagai kolom paling kanan, dan label teks rata kanan.
  • Gambar memiliki perilaku khusus, lihat bagian "FlowDirection for Image" di bawah ini.

Teks dalam kontainer teks seperti TextBlock atau TextBox tidak membalik secara horizontal jika FlowDirection adalah RightToLeft, baik seluruh string maupun karakter individu atau glyph dibalik. Urutan elemen Sebaris dalam InlineCollection juga tidak berubah. Ini memungkinkan pencampuran konten dalam aplikasi kanan-ke-kiri, seperti menyertakan string bahasa Inggris yang disengaja dalam UI bahasa Arab. Setiap string yang dimaksudkan untuk menjadi sumber teks untuk kontainer teks di mana bahasa yang dimaksudkan adalah bahasa kanan-ke-kiri harus menentukan string tersebut dalam representasi Unicode yang sesuai, yang akan disajikan dengan benar dalam kontainer teks. Namun, nilai FlowDirection sebagai RightToLeft dalam kontainer teks mengubah nilai TextAlignment default sehingga tepi kanan teks rata kanan dengan batas kontainer teks.

FlowDirection tidak memiliki efek yang terlihat pada teks dalam elemen Glyphs tetapi mengubah pengujian hit elemen dan mengoordinasikan bingkai referensi.

FlowDirection untuk Gambar dan MediaElement

Jika Anda mengatur FlowDirection sebagai RightToLeft untuk Gambar, konten visual Gambar dibalik secara horizontal. Namun, elemen Gambar tidak mewarisi nilai FlowDirection dari elemen induk apa pun. Biasanya Anda hanya ingin perilaku membalik gambar dalam gambar yang relevan dengan tata letak, tetapi belum tentu untuk elemen yang telah menyematkan teks atau komponen lain yang tidak akan masuk akal untuk audiens kanan-ke-kiri. Untuk mendapatkan perilaku pembalikan gambar, Anda harus mengatur elemen FlowDirection pada elemen Gambar khusus ke RightToLeft, atau mengatur properti FlowDirection di code-behind. Pertimbangkan untuk mengidentifikasi elemen Gambar dengan direktif x:Uid, dan menentukan nilai FlowDirection sebagai sumber daya RESW, sehingga pakar pelokalan Anda dapat mengubah nilai ini nanti tanpa mengubah XAML atau kode.

MediaElement juga tidak mewarisi nilai FlowDirection dari elemen induk apa pun. Jika Anda secara eksplisit mengatur FlowDirection sebagai RightToLeft di MediaElement, maka area tampilan media dibalik secara horizontal, mirip dengan cara Gambar membalik. Melakukan ini dengan sengaja harus lebih langka daripada Gambar, karena kemungkinan sumber media apa pun yang digunakan dalam konten yang dilokalkan sudah memiliki masalah kanan-ke-kiri yang diperbaik dalam file media sumber.

FlowDirection untuk WebView dan WebViewBrush

WebView dan WebViewBrush tidak mempromosikan informasi kanan-ke-kiri ke cara HTML dimuat. Jika ada pertimbangan kiri-ke-kanan dalam konten HTML, pertimbangkan untuk mengatur direktif x:Uid pada elemen WebView dan menentukan nilai WebView.Source Uniform Resource Identifier (URI) sebagai sumber daya RESW bentuk string. WebView dan WebViewBrush juga tidak mewarisi FlowDirection dari elemen induk apa pun. Mengatur FlowDirection di WebView dan WebViewBrush tidak menyebabkan pengecualian, tetapi nilai apa pun yang Anda tetapkan diabaikan oleh runtime.

Berlaku untuk

Lihat juga