FrameworkElement.FlowDirection Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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 atau LeftToRight
RightToLeft
. Pengaturan 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 saat FlowDirection
adalah default 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>
Keterangan
FlowDirection
ditujukan untuk dukungan tata letak kanan-ke-kiri untuk aplikasi. Pada dasarnya, pengaturan 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
RightToLeft
hal tersebut tidak dicatat dalam topik ini, dan ini mungkin dicatat dalam topik referensi untuk kontrol XAML tersebut.
Objek mewarisi FlowDirection
nilai dari induknya di pohon objek. Elemen apa pun dapat mengambil alih nilai yang didapat dari induknya. Jika tidak ditentukan, FlowDirection default adalah LeftToRight
.
FlowDirection
Jika nilai 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 tekan API pengujian 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
sebagaiRightToLeft
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 individual atau glyph dibalik. Urutan elemen Sebaris dalam InlineCollection juga tidak berubah. Ini memungkinkan pencampuran konten di aplikasi kanan-ke-kiri, seperti menyertakan string bahasa Inggris yang disengaja dalam antarmuka pengguna 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
seperti RightToLeft
dalam kontainer teks memang mengubah nilai TextAlignment default sehingga tepi kanan teks diratakan 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 FlowDirection
nilai 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 memiliki teks yang disematkan atau komponen lain yang tidak masuk akal dibalik untuk audiens kanan ke kiri. Untuk mendapatkan perilaku membalik gambar, Anda harus mengatur FlowDirection
elemen pada elemen Gambar khusus ke RightToLeft
, atau mengatur FlowDirection
properti di code-behind. Pertimbangkan untuk mengidentifikasi elemen Gambar dengan arahan x:Uid, dan tentukan FlowDirection
nilai sebagai sumber daya RESW, sehingga pakar pelokalan Anda dapat mengubah nilai ini nanti tanpa mengubah XAML atau kode.
MediaPlayerElement juga tidak mewarisi FlowDirection
nilai dari elemen induk apa pun. Jika Anda secara eksplisit mengatur FlowDirection
seperti RightToLeft
pada MediaPlayerElement, 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 dikoreksi 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) apa pun sebagai sumber daya RESW bentuk string.
WebView dan WebViewBrush juga tidak mewarisi FlowDirection dari elemen induk apa pun. Pengaturan FlowDirection
di WebView dan WebViewBrush tidak menyebabkan pengecualian, tetapi nilai apa pun yang Anda tetapkan diabaikan oleh runtime.