Ich habe festgestellt, dass der WPF-Designer beim Anpassen der Steuerelemente im Vergleich zum Windows Forms-Designer sehr schlecht funktioniert.
Im folgenden Fenster kann ich nicht jedes Etikett ausrichten, so dass sein Text in der gleichen Zeile wie der Text in dem Textfeld daneben ist. Das erste Label ist korrekt ausgerichtet, aber der WPF-Designer gibt mir keine Fanglinien, um das zweite und das dritte korrekt auszurichten.
Außerdem kann ich die Schaltfläche nicht mit den Beschriftungen ausrichten. Die Fanglinie setzt die Schaltfläche ein paar Pixel nach links im Vergleich zu den Beschriftungstexten.
Ich konnte keinen schnellen Weg finden, diese Ausrichtung manuell vorzunehmen, indem ich XAML-Code schreibe. Das Setzen der Steuerelemente in ein Raster und das Festlegen des Rands für jedes Steuerelement ist zeitaufwendig.
alt text http://img520.imageshack.us/img520/4843/wpfdesigneralignment.png
Kennen Sie die Steuerelemente in den WPF-Fenstern schnell?
Ich habe gelernt, dass ich die Ausrichtung mit handcodiertem XAML vermeiden kann. Was ich damit erreicht habe, ist dies (die Stile können in anderen Fenstern wiederverwendet werden):
%Vor%Verwenden Sie ein Raster, um Ihre Steuerelemente auszulegen, und stellen Sie sicher, dass Sie keine Steuerelemente auf den Steuerelementen haben ... es sei denn natürlich, Sie möchten etwas Padding und Sie stellen sicher, dass sie alle gerade sind.
Eine schnelle Google-Suche hat ein grundlegendes Tutorial zurückgegeben:
Verwenden Sie ein geeignetes Panel-Steuerelement (StackPanel, DockPanel usw.) für die gewünschte Ausrichtung, anstatt das Standardraster zu verwenden. Das Grid-Steuerelement macht es einfach, Steuerelemente auf das Fenster zu ziehen, wo immer Sie möchten (ohne so unstrukturiert wie Canvas zu sein), macht jedoch keine Annahmen darüber, welche Art von Layout Sie eigentlich konstruieren möchten.
Wenn das Layout, das Sie zu entwerfen versuchen, tatsächlich ein 'Gitter' (oder eine Tabelle, z. B. Zeilen und Spalten) ist, empfehle ich entweder das UniformGrid-Steuerelement (für Zeilen und Spalten mit gleichem Abstand) oder das Gitter mit Höhe / Breite pro Zeile / Spalte und Ränder für alle Elemente auf 0 gesetzt (um seine Zelle vollständig zu füllen).
Am besten verwenden Sie Grid oder DockPanel.
In den meisten Fällen sind Margen nicht erforderlich.
Ich habe ein benutzerdefiniertes Panel geschrieben, das "form layout" (Gruppen von zwei Spalten, alle Labels die gleiche Größe, alle haben die gleiche Größe, alles ausgerichtet usw.), es ist auf meinem Blog unter: Ссылка
Es wurde entwickelt, um beim Bearbeiten von XAML schnell und einfach zu sein, ich habe es nicht einmal im Designer versucht.