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 VerticalOptionsLayoutOptions.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ı

MetotAyarladığı
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ı

MetotDikeyYatay
AlignTopLeft()StartStart
AlignTopCenter()StartCenter
AlignTopRight()StartEnd
AlignTopFill()StartFill
AlignCenterLeft()CenterStart
AlignCenterRight()CenterEnd
AlignCenterFill()CenterFill
AlignBottomLeft()EndStart
AlignBottomCenter()EndCenter
AlignBottomRight()EndEnd
AlignBottomFill()EndFill
AlignFillLeft()FillStart
AlignFillCenter()FillCenter
AlignFillRight()FillEnd

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çin TextCenter() 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 Grid içinde çocuk, seçenek verilmedikçe hücresini doldurur — hücre içinde konumlandırmak için bu yardımcıları kullanın.

  • Expand seçenekleri MAUI'de kalktı. Kütüphane bilinçli olarak yalnızca Start/Center/End/Fill sunar; genişleme davranışı için Grid star boyutlandırması veya FlexLayout grow katsayıları kullanın.

  • Bu yardımcılar her View'a uygulanır — layout'lar dahil (new VerticalStackLayout().Center() tüm stack'i ortalar).

İlgili Konular