UIElement.Arrange(Rect) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Alt öğeleri yerleştirir ve için bir UIElementboyut belirler. Üst öğeler, özyinelemeli düzen güncelleştirmesi oluşturmak için bu yöntemi uygulamalarından ArrangeCore(Rect) (veya WPF çerçeve düzeyi eşdeğerinden) çağırır. Bu yöntem, düzen güncelleştirmesinin ikinci geçişini oluşturur.
public:
void Arrange(System::Windows::Rect finalRect);
public void Arrange (System.Windows.Rect finalRect);
member this.Arrange : System.Windows.Rect -> unit
Public Sub Arrange (finalRect As Rect)
Parametreler
Açıklamalar
WPF çerçeve düzeyi öğe türetme senaryoları için Arrange davranışı değiştirilmemelidir (ve gölgelendirmediğiniz sürece değiştirilemez). Bunun yerine, sınıfınızdaki uygulamayı geçersiz kılmanız ArrangeOverride gerekir. Uygulamanız ArrangeOverride , varsayılan WPF çerçeve düzeyi düzen işlemlerinin bir parçası olarak tarafından Arrange dahili olarak çağrılır. Uygulamanız ArrangeCore , alt öğeleri varsa her bir alt öğede de çağrısı ArrangeOverride yapmalıdır.
WPF çekirdek düzeyinde öğe türetme senaryoları için Arrange davranışı değiştirilmemelidir (ve gölgelendirmediğiniz sürece değiştirilemez). Bunun yerine, sınıfınızda geçersiz kılmanız ArrangeCore gerekir. Uygulamanız ArrangeCore , varsayılan WPF çerçeve düzeyi düzen işlemlerinin bir parçası olarak tarafından Arrange dahili olarak çağrılır. Ancak, bu, WPF çekirdek düzeyindeki öğeleri temel öğe sınıfından özel olarak türetiyorsanız genellikle bu durum söz konusu olmayan WPF çerçeve düzeyi UIElement düzenini ve düzen sistemini kullandığınızı varsayar. Uygulamanız ArrangeCore , alt öğeleri varsa her bir alt öğede de çağrısı Arrange yapmalıdır. WPF çekirdek düzeyi senaryosunun, FrameworkElement korumalı ArrangeCoreolduğundan türetilmiş bir FrameworkElement sınıf kullanmadığınız anlamına geldiğini unutmayın.
Windows Presentation Foundation(WPF) içinde WPF çerçeve düzeyi düzen konumlandırma hesaplaması bir Measure çağrı ve bir Arrange çağrıdan oluşur. Measure Çağrı sırasında, düzen sistemi sağlanan Size (availableSize
) bağımsız değişkenini kullanarak öğenin boyut gereksinimlerini belirler. Arrange Çağrı sırasında, düzen sistemi bir öğenin sınırlayıcı kutusunun boyutunu ve konumunu son haline getirir. Daha fazla bilgi için bkz . Düzen.
availableSize
sıfırdan sonsuza kadar herhangi bir sayı olabilir. Yerleştirilecek öğeler, parametresi aracılığıyla ihtiyaç duydukları minimum Size değeri availableSize
döndürür.
Düzenin ilk örneği başlatıldığında, her zaman öncesinde Arrangebir Measure çağrı alır. Ancak, ilk düzen geçişten sonra, olmadan bir Arrange çağrı alabilir; bu durum yalnızca Arrange etkileyen bir özellik değiştirildiğinde (hizalama gibi) veya üst öğe olmadan Measurebir Arrange aldığında gerçekleşebilirMeasure. Bir Measure çağrı, çağrıyı otomatik olarak geçersiz kılmaya neden Arrange olur.
Düzen güncelleştirmeleri genellikle zaman uyumsuz olarak gerçekleşir (düzen sistemi tarafından belirlenen bir zamanda). Bir öğe, öğe boyutlandırmayı etkileyen özelliklerde yapılan değişiklikleri hemen yansıtmayabilir (örneğin Width).
Not
Düzen güncelleştirmeleri yöntemi kullanılarak UpdateLayout zorlanabilir; ancak genellikle gereksiz olduğundan ve performansın düşmesine neden olabileceğinden bu işlevin çağrılması önerilmez. Çağrının UpdateLayout uygun olabileceği birçok durumda, düzen sistemi büyük olasılıkla güncelleştirmeleri zaten işliyor olacaktır. Düzen sistemi, düzen değişikliklerini bir paketin parçası olarak tüm gerekli güncelleştirmeleri en iyi duruma getirebilecek şekilde işleyebilir.
Düzen sistemi, biri için ve Arrangediğeri için Measure olan iki ayrı geçersiz düzen kuyruğu tutar. Düzen kuyruğu, görsel ağaçtaki öğelerin sırasına göre sıralanır. Üst öğelerde tekrarlanan değişikliklerden kaynaklanan yedekli düzenleri önlemek için, ağaçta daha üstteki öğeler kuyruğun en üstündedir. Yinelenen girdiler kuyruktan otomatik olarak kaldırılır ve öğeler zaten geçerliyse kuyruktan otomatik olarak kaldırılır.
Düzen güncelleştirilirken önce Measure kuyruk boşaltılır, ardından Arrange kuyruk eklenir. Kuyrukta Arrange bir öğe varsa kuyruktaki Measure bir öğe hiçbir zaman düzenlenemez.