Bir çocuk içeren basit bir panel oluşturmaya çalışıyorum ve bunu en yakın kılavuz boyutlarına getireceğim. MeasureOverride ve ArrangeOverride'ı geçersiz kılarak bunu nasıl yapacağımı anlamaya zorlanıyorum.WPF MeasureOverride ve ArrangeOverride sonsuzluk ve 0 boyutlarını anlama konusunda yardıma mı ihtiyacınız var
İşte peşindeyim: Panelimin sahibine, (a) mümkün olduğu kadar büyük olmasını istediğini, sonra (b) bu büyüklüğün ne olduğunu öğrendiğinde, kendisinin ve Çocuğun UIElementi en yakın küçük yaka noktasına göre. Yani eğer 10'lara yapışıyorsak ve 192x184'ten büyük olmayan bir bölgede olabilirsek, panel kendi ana kapsayıcısını "benim gerçek boyutum 190x180" olacak. Bu şekilde kontrolümü sınırlayan herhangi bir şey, potansiyel alanın aksine kenarlarına hizalanabilecektir.
Panelimi bir Kılavuzun içine koyduğumda, geçersiz kılmalarda gelen boyut için 0 veya PositiveInfinity (Unutuyorum) alıyorum, ama bilmem gerek "alanım gerçekten ne kadar büyük olabilir?" sonsuzluklar ..
WPF, PozitifInfinity'nin sihirli değerlerini ve büyüklüklerini 0 olarak gördüğü sorunun bir parçası olduğunu düşünüyorum. MeasureOverride ile "Bana izin vereceğiniz kadar büyük olabilirim" ve ArrangeOverride'de gerçekte büyüklükte bir boyuta sahip olmanın bir yoluna ihtiyacım var. Ya da bunun tamamen yanlış bir şekilde mi gidiyorum? Reflektörde standart panellerin kodlarında biraz dolaşmaktan ölçüm yapmak ve düzenlemek çok karmaşık görünüyor.