UIElement.MeasureCore(Size) 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.
Türetilmiş bir sınıfta geçersiz kılındığında, herhangi bir alt öğe içeriğinin boyutu dikkate alınarak bu öğeyi düzgün boyutlandırmak için ölçüm mantığı sağlar.
protected:
virtual System::Windows::Size MeasureCore(System::Windows::Size availableSize);
protected virtual System.Windows.Size MeasureCore (System.Windows.Size availableSize);
abstract member MeasureCore : System.Windows.Size -> System.Windows.Size
override this.MeasureCore : System.Windows.Size -> System.Windows.Size
Protected Overridable Function MeasureCore (availableSize As Size) As Size
Parametreler
- availableSize
- Size
Üst öğenin alt öğe için ayırabileceği kullanılabilir boyut.
Döndürülenler
Düzende bu öğenin istenen boyutu.
Örnekler
tipik bir geçersiz kılma MeasureCore bu yaklaşık deseni izler (adlı VisualChildren
yerleşik bir koleksiyon yoktur; VisualChildren
öğenizin koruduğu alt koleksiyonu temsil eden bir yer tutucudur).
protected override Size MeasureCore(Size availableSize)
{
foreach (UIElement child in VisualChildren)
{
child.Measure(availableSize);
// call some method on child that adjusts child size if needed
_cache.StoreInfoAboutChild(child);
}
Size desired = CalculateBasedOnCache(_cache);
return desired;
}
Protected Overrides Function MeasureCore(ByVal availableSize As Size) As Size
For Each child As UIElement In VisualChildren
child.Measure(availableSize)
' call some method on child that adjusts child size if needed
_cache.StoreInfoAboutChild(child)
Next child
Dim desired As Size = CalculateBasedOnCache(_cache)
Return desired
End Function
Her alt öğede çağrısı Measure yapmalıdır.
Genellikle uygulamanız aynı öğedeki MeasureCore ve ArrangeCore yöntemi çağrıları arasında ölçüm bilgilerini önbelleğe almalıdır.
uygulamasının temel uygulamalarını MeasureCore çağırmak gerekli değildir, ancak temel uygulama istenen düzen özelliğini sağlıyorsa uygun olabilir.
Alt öğelerde çağrısı Measure , üst öğenin desteklediği düzenin türüne bağlı olarak üst öğeyle aynı
availableSize
veya alanın bir alt kümesini geçirmelidir. Örneğin, öğeye özgü kenarlık veya doldurma, kaydırma çubuğu veya özel denetim için alanı kaldırmak geçerli olabilir.
Açıklamalar
yerine öğesi FrameworkElementUIElementtüretmek daha yaygındır. 'den FrameworkElementtüretiyorsanız, üzerindeki FrameworkElement geçersiz kılmanın MeasureCore yöntemi mühürlediğini MeasureCore unutmayın. Bu nedenle, yalnızca içermeyen FrameworkElementbir devralma yoluyla türetilen UIElement düzen ölçüsü özelliklerini değiştirmek için bir araç olarak geçersiz kılarsınızMeasureCore. WPF çekirdek düzeyinde kendi uygulamanızı oluşturmaya çalışıyorsanız bu durum söz konusu olabilir. Aksi takdirde, 'den FrameworkElementtüretiliyorsanız, Ölçü davranışı için uygulama şablonu uygulamasıdırFrameworkElement.MeasureOverride
Alt öğeleri olan bir üst öğe her alt öğede çağrı Measure yapmalıdır, aksi takdirde bu alt öğeler boyutlandırılmaz veya düzenlenmez ve düzenden etkin bir şekilde kaybolur.
Devralanlara Notlar
Uygulamalar, sonsuz değer için availableSize
sağlanan bir değeri işleyebilmelidir. Sonsuz değer istenen kısıtlama olmadığını gösterir ve özyinelemeli Ölçü çağrıları aracılığıyla ölçüm seçimini üst öğeye etkili bir şekilde saptırabilir.
Uygulamalar, için availableSize
sağlanan değeri geçici bir kısıtlama olarak değerlendirebilir. Uygulama kodunun diğer yönleri üst öğenin geçerli gerçek boyutunu saptayana kadar alt öğe daha büyük bir boyut belirtebilir. Büyük boyutlu istek, alt öğenin üst öğenizin içerik görüntüleme bölgesinde içerik kaydırmayı destekleyip desteklemediğini sorgulayıp desteklemediğini belirten bir kuraldır.