Laden...

Zugriff auf Controls die per Template einem Window zugeordnet wurden

Erstellt von adeptus vor 11 Jahren Letzter Beitrag vor 11 Jahren 427 Views
adeptus Themenstarter:in
106 Beiträge seit 2011
vor 11 Jahren
Zugriff auf Controls die per Template einem Window zugeordnet wurden

Hi,

ich möchte, dass meine Fenster sich ihrem Inhalt in der Breite automatisch anpassen.

Diese Windows erhalten ihren Inhalt über einen Style der auf ein Template verweist. Das funktioniert auch soweit prima. Nun wollte ich wie oben beschrieben, dass die Breite des Windows sich derart anpasse, dass keine Scrollbars notwendig sind (Im Template ist ein Grid dessen Spalten per Binding übermittelt werden, dadurch können es unterschiedlich viele und unterschiedlich breite Spalten werden). Deswegen wollte ich die optimale Breite des Grids herausbekommen (das könnte u.U. das ViewModel welches die Spalten ja kennt) und dazu noch die Breite der senkrechten Toolbar, die auch im Template drin ist, ermitteln und daraus eine Gesamtbreit errechnen. Dazu muß ich aber zur Laufzeit auf das Grid und die Toolbar zugreifen.

Ich habe versucht mit dem VisualTreeHelper auf die Children des Windows zuzugreifen doch

VisualTreeHelper.GetChildrenCount(MyWindow)

ergibt immer 0.

Dann habe ich es mit

MyWindow.Template.FindName ("...", MyWindow)

probiert. Da kamm immer NULL raus.

Wie kann ich in diesem Fall auf meine Controls zugreifen?

Gruß,
Pascal

It's not a bug, it always worked that way!
Codegrunts
XING

3.430 Beiträge seit 2007
vor 11 Jahren

Hallo,

schau dir mal das hier an: Automatically resize a window to fit content in wpf

Du musst das nicht per Hand machen.
Du kannst im Window einfach das SizeToContent setzen.
Damit passt sich dieses automatisch an den Inhalt an.

Grüße
Michael

adeptus Themenstarter:in
106 Beiträge seit 2011
vor 11 Jahren

...
Du kannst im Window einfach das SizeToContent setzen.
Damit passt sich dieses automatisch an den Inhalt an.

Oh weh... Da sieht man manchmal vor lauter Bäumen den Wald nicht...
Danke! 👍

Es bleibt aber trotzdem die Frage, die ich aus Neugierde/Interesse gerne beantwortet hätte: wie würde ich auf meine Controls zugreifen?

It's not a bug, it always worked that way!
Codegrunts
XING