Yerleşim Seçenekleri
July 15, 2026 · View on GitHub
HorizontalOptions ve VerticalOptions ayarlamak MAUI'nin en tekrarlı işlerinden biridir. FmgLib.MauiMarkup her kombinasyonu, herhangi bir View üzerinde tek ve okunabilir bir metoda indirger.
Hızlı Örnek
new StackLayout()
.Children(
new Label().Text("Merhaba, Dünya!").Center()
)
Center(), hem HorizontalOptions hem VerticalOptions'ı LayoutOptions.Center yapar.
Tam Metot Referansı
Adları, (dikey, yatay) değerlerinden oluşan 4×4'lük bir tablo gibi düşünün; yaygın durumlar için kısayollar vardır.
Tek eksen yardımcıları
| Metot | Ayarladığı |
|---|---|
CenterHorizontal() | HorizontalOptions = Center |
CenterVertical() | VerticalOptions = Center |
Center() | ikisi de Center |
AlignLeft() | HorizontalOptions = Start |
AlignRight() | HorizontalOptions = End |
AlignTop() | VerticalOptions = Start |
AlignBottom() | VerticalOptions = End |
FillHorizontal() | HorizontalOptions = Fill |
FillVertical() | VerticalOptions = Fill |
FillBothDirections() | ikisi de Fill |
İki eksen kombinasyonları
| Metot | Dikey | Yatay |
|---|---|---|
AlignTopLeft() | Start | Start |
AlignTopCenter() | Start | Center |
AlignTopRight() | Start | End |
AlignTopFill() | Start | Fill |
AlignCenterLeft() | Center | Start |
AlignCenterRight() | Center | End |
AlignCenterFill() | Center | Fill |
AlignBottomLeft() | End | Start |
AlignBottomCenter() | End | Center |
AlignBottomRight() | End | End |
AlignBottomFill() | End | Fill |
AlignFillLeft() | Fill | Start |
AlignFillCenter() | Fill | Center |
AlignFillRight() | Fill | End |
Genel form
Yukarıda olmayan (veya çalışma zamanında hesaplanan) her kombinasyon:
new Label().AlignLayout(vertical: LayoutOptions.End, horizontal: LayoutOptions.Center)
Ham özelliklere de her zaman dönebilirsiniz:
new Label()
.HorizontalOptions(LayoutOptions.Start)
.VerticalOptions(LayoutOptions.Fill)
Çalışan Örnek
Alta sabitlenmiş, içeriği ortalanmış, sağa yaslanmış ayar ikonlu bir alt çubuk:
new Grid()
.Children(
new Label()
.Text("Hazır.")
.AlignBottomCenter(),
new ImageButton()
.Source("gear.png")
.SizeRequest(28, 28)
.AlignBottomRight()
.Margin(0, 0, 12, 12)
)
Sayfada ortalanmış bir hero kartı:
this.Content(
new Border()
.SizeRequest(300, 180)
.Center() // sayfada ortalanır
.Content(
new VerticalStackLayout()
.Center() // stack border içinde ortalanır
.Children(
new Label().Text("Hoş geldiniz").FontSize(28).CenterHorizontal(),
new Label().Text("Devam etmek için giriş yapın").CenterHorizontal()
)
)
);
Notlar ve Tuzaklar
-
Yerleşim seçenekleri ile metin hizalama farklıdır.
Center(), view'ı ebeveyni içinde konumlandırır. Label'ın içindeki metni ortalamak içinTextCenter()kullanın — bkz. Metin Hizalama. Sıkça birlikte kullanılırlar:new Label().Text("Başlık").FillHorizontal().TextCenter() -
Grid çocukları varsayılan olarak Fill'dir. Bir
Gridiçinde çocuk, seçenek verilmedikçe hücresini doldurur — hücre içinde konumlandırmak için bu yardımcıları kullanın. -
Expandseçenekleri MAUI'de kalktı. Kütüphane bilinçli olarak yalnızcaStart/Center/End/Fillsunar; genişleme davranışı içinGridstar boyutlandırması veyaFlexLayoutgrow katsayıları kullanın. -
Bu yardımcılar her
View'a uygulanır — layout'lar dahil (new VerticalStackLayout().Center()tüm stack'i ortalar).