c # WPF Wie programmiere ich Ort, Breite und Höhe der Steuerung?

7

Ich mache meine erste WPF-Anwendung. Ich habe ein Problem, bei dem, wenn mein Formular maximiert oder Vollbild ist, meine Steuerelemente die Größe nicht ändern und einfach am selben Ort bleiben. nur die Form ist maximiert.

in winform, ich kann die Anpassung in den .cs wie folgt tun:

%Vor%

das wird mir helfen, es zu setzen, wenn mein Formular maximiert wird. Ich tue es, indem ich einige Arithmetik verwende, wo ich die Auflösung des Bildschirms und einige Berechnungen bekomme und den Wert erhalte und ihn auf die Breite, Höhe und Position einstellen kann. Aber das ist in WINFORM.

Wie werde ich dieses Problem für maximierte und Vollbild in WPF angehen? Gibt es eine Möglichkeit, die CS-Datei programmatisch zu bearbeiten? Oder ist WPF mit einer einfachen integrierten Steuerung ausgestattet, um dieses Problem anzugehen?

Angenommen, für dieses Beispiel wird ein Dockpanel im WPF verwendet.

Es ist sinnlos, wenn das Fenster maximiert ist, aber die anderen Steuerelemente bleiben.

irgendwelche Ideen?

    
Psychocryo 10.05.2011, 08:51
quelle

6 Antworten

22

Um Breite und Höhe festzulegen:

%Vor%

wie für den Speicherort, wpf verwendet Rand :

%Vor%     
Psychocryo 11.05.2011, 08:01
quelle
9

Es ist möglich, untergeordnete Elemente in einem Canvas programmatisch zu verschieben.

In xaml:

%Vor%

In C #:

%Vor%     
Roger Lew 16.12.2013 21:42
quelle
1

Für Ihr spezifisches Problem würden Sie empfehlen, ein DockPanel und platziere deine Steuerelemente darin. Hier ist das erste Bing-Ergebnis: WPF Tutorial | Dock-Panel

Und wie bereits von flq und blindmeis vorgeschlagen, sollten Sie die Layoutpanels studieren. Das wird dein Leben in WPF wirklich einfacher machen.

    
publicgk 10.05.2011 08:59
quelle
0

Sie sollten sich die verschiedenen Layoutpanels in wpf ansehen (Grid, DockPanel, StackPanel, Canvas ...)

Wenn Sie also Eigenschaften für Ihr Panel festlegen, verhält es sich anders, wenn sich Ihr LayoutPanel ändert.

    
blindmeis 10.05.2011 08:58
quelle
0

Wenn Sie Ihre untergeordneten Elemente explizit positionieren möchten, verwenden Sie das Bedienfeld "Leinwand"

%Vor%     
Navid Rahmani 10.06.2011 19:25
quelle
0

Verwenden Sie einige Berechnungen wie (vorherige Position des Steuerelements * neue Größe des Layouts) / vorherige Größe des Layouts = neue Position des Steuerelements

Am einfachsten ist es jedoch, XAML zu verwenden Verwenden Sie Grid und fügen Sie Spalten und Zeilen darin ein und legen Sie die Größe der Spalten und Zeilen auf * fest Bei der Änderung der Layoutgröße werden die Steuerelemente neu positioniert, um auf die Größenänderung des Parents zu verweisen, die Ihr Raster als untergeordnetes Element hat. Und Sie könnten sogar automatisch in der Größe veränderbare Steuerelemente verwenden, indem Sie die Ränder der Steuerelemente in Spalten und Zeilen festlegen. Vergessen Sie nicht die horizontalen und vertikalen Ausrichtungen, die auf Dehnung eingestellt sind.

    
Eftekhari 21.07.2014 21:45
quelle