UIElement.MeasureCore(Size) Yöntem

Tanım

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ı VisualChildrenyerleş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.

Şunlara uygulanır