Tamam, bir ana özellik vardır UIElement
doğrudan alt sınıf olduğunu FrameworkElement
, biliyorum, ama Paneller tip UIElement
çocuk sahibi değil FrameworkElement
görünüyor (Çocuk tip UIElementCollection
taşımaktadır) Eğer UIElement
s doğrudan ekleyebilirsiniz anlamına gelecektir Panel'e.UIElement'in ebeveyini nasıl alabilirsiniz?
Bu, eğer bir UIElement
varsa ve bir üst panelin bir panel olup olmadığını görmek istiyorsanız, bunun nasıl test edileceğini bildiğim tek yol VisualTreeHelper
ile, ancak görsel ağaç değil, mantıksal ağaçtır. (En azından bir panelin bir şablonunun olmadığını biliyoruz, belki de bu yoldur, ama hala ...)
VisualTreeHelper
'dan ayrılanlar, UIElement
'un hangi panelinin hangi panelde olduğunu bilen var mı? (... ve neden sadece FrameworkElement
yerine bir Üst özellik tanımlamamışlar diye bir fikriniz var mı?)
Teşekkürler!
Farkı biliyorum. fiziksel ağaç ve mantıksal ağaç arasında. Sorduğum bu değildi. Tuval, Görsel Ağacın bir parçası olabileceğinden, LogicalTreeHelper'ı burada da kullanamam. Bununla birlikte, ebeveyn ile ilgili noktanızı görüyorum. Benim argümanım o zaman neden ayrı bir VisualParent oluşturmayacak? Aşağıya inanıyorum, ana paneli almak için VisualTreeHelper (ve kolaylık için birleştirilmiş bir yöntem) kullanmaktan başka seçeneğim yok. Ve teknik olarak cevap olmasa da, onu zaten böyle işaretliyorum çünkü bir tane gibi görünmüyor. – MarqueIV