Abrufen der aktuellen Größe von WPF-Steuerelementen

8

Ich habe Bildkontrolle in meinem Fenster. Die Größe dieses Bildsteuerelements ist auf "Auto" eingestellt.

%Vor%

Wenn ich versuche, Zugriff zu erhalten, gibt es 0 zurück. Wie wird die tatsächliche Größe dieses Steuerelements angezeigt? Es ändert sich mit dem Fenster.

    
Timur Mustafaev 26.10.2011, 13:29
quelle

3 Antworten

15

Sie können .ActualHeight und .ActualWidth verwenden, um das gerenderte Height / Width eines Steuerelements zu erhalten

    
Rachel 26.10.2011, 13:32
quelle
3

Die Eigenschaft Width und Height lässt Sie die gewünschte Größe angeben, während Sie die gerenderte Größe verwenden möchten, auf die zugegriffen werden kann (aber nicht gesetzt) ​​mit dem ActualWidth und ActualHeight Eigenschaften.

Es sollte angemerkt werden, dass dies auch keine statischen Werte sind, das heißt, wenn sie einmal gesetzt sind, werden sie nicht immer für immer gleich sein, da sie bei jeder Rendering-Sequenz neu bewertet werden ...

  

Da [ActualHeight / ActualWidth] ein berechneter Wert ist, sollten Sie sich dessen bewusst sein   Es könnte mehrere oder inkrementelle Änderungen an ihm als a geben   Ergebnis verschiedener Operationen durch das Layout-System. Das Layoutsystem   kann den erforderlichen Maßraum für Kindelemente berechnen,   Einschränkungen durch das Elternelement und so weiter.

Je nach Ihren Anforderungen sollten Sie möglicherweise eine Neubewertung Ihrer Daten an geeigneten Stellen in Betracht ziehen, beispielsweise wenn die Größe des enthaltenen Steuerelements geändert wird.

    
Grant Thomas 26.10.2011 13:34
quelle
1

Während einige der WPF-Steuerelemente den gesamten verfügbaren Speicherplatz belegen, wenn sie ausgelegt und gerendert werden, tun dies die anderen nicht. Insbesondere ist das Bildsteuerelement nicht von einer Art, die seine Größe selbst bestimmt, d. H. In Fällen, in denen Sie die Größe des Steuerelements nicht explizit mit Breiten- / Höhenattributen oder dergleichen angeben.

Aber das Grid-Steuerelement füllt den gesamten verfügbaren Platz aus, wenn größenbestimmende Attribute fehlen. Die Page / Window-Vorlage in Visual Studio verfügt über ein Grid-Steuerelement als untergeordnetes Element eines Seiten- / Fenster-Stammsteuerelements. Wenn der Benutzer beginnt, Steuerelemente auf einer Seite in einem grafischen Editor zu platzieren, werden die vom Benutzer hinzugefügten Steuerelemente zuerst untergeordnete Elemente dieses Grids Kontrolle.

Wenn Sie die VS-Vorlage verwendet haben und Ihr Image-Steuerelement ein untergeordnetes Steuerelement des Grid-Steuerelements ist, benennen Sie Ihr Grid mit einem x: Name-Attribut, und Sie können die ActualWidth / Height-Eigenschaften des Rasters für Ihre Anforderungen in einem Code verwenden -hind, weil das Image-Steuerelement auf die übergeordnete Rastergröße anwächst - vorausgesetzt, Sie geben die Größe nicht explizit oder auf andere Weise an, dh Sie legen den Bildinhalt fest.

Übrigens kann das Größenänderungsverhalten von integrierten Steuerelementen geändert werden. Sie können ein Steuerelement ändern und entsprechende Abhängigkeitseigenschaften überschreiben. Siehe zum Beispiel Ссылка .

    
V.V.T 28.11.2017 10:05
quelle

Tags und Links