Ich möchte einem Raster ein vertikales Trennzeichen hinzufügen, aber ich kann nur das horizontale Trennzeichen finden. Gibt es keine Eigenschaft, in die Sie eingeben können, ob die Trennlinie horizontal oder vertikal sein soll?
Ich habe viel gesucht, aber keine kurze und einfache Lösung dafür gefunden.
Ich verwende .Net Framework 4.0 und Visual Studio Ultimate 2012.
Wenn ich versuche, den horizontalen Separator um 90 Grad zu drehen, verliert er die Fähigkeit, an andere Komponenten zu "andocken".
Der gedrehte Separator sieht folgendermaßen aus:
<Separator HorizontalAlignment="Left" Height="100" Margin="264,26,0,0" VerticalAlignment="Top" Width="100" RenderTransformOrigin="0.5,0.5">
<Separator.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="90"/>
<TranslateTransform/>
</TransformGroup>
</Separator.RenderTransform>
</Separator>
wpf
xaml
visual-studio-2012
separator
Martin Weber
quelle
quelle
Rectangle
?Border
kann auch eine Lösung sein ..Antworten:
Dies sollte genau das tun, was der Autor wollte:
wenn Sie eine horizontale Trenn wollen, ist die Änderung
Orientation
desStackPanel
zuVertical
.quelle
RenderTransform
. Ordentliche Abkürzung zum Erinnern :)Dies ist nicht genau das, was der Autor gefragt hat, aber es ist sehr einfach und funktioniert genau wie erwartet.
Rechteck macht den Job:
quelle
<Rectangle HorizontalAlignment="Stretch" Height="3" Margin="-1,6" Stroke="Black" Fill="White" />
In der Vergangenheit habe ich den hier gefundenen Stil verwendet
Sie müssen die Transformation
LayoutTransform
anstelle von festlegenRenderTransform
damit die Transformation während des Layout-Durchlaufs und nicht während des Render-Durchlaufs erfolgt. Der Layout-Durchlauf erfolgt, wenn WPF versucht, Steuerelemente zu gestalten und herauszufinden, wie viel Platz jedes Steuerelement einnimmt, während der Render-Durchlauf nach dem Layout-Durchlauf erfolgt, wenn WPF versucht, Steuerelemente zu rendern.Sie können mehr über den Unterschied zwischen
LayoutTransform
undRenderTransform
hier oder hier lesenquelle
DockPanel
, sollten Sie in der Lage sein,DockPanel.Dock
auf IhreSeparator
Seite zu setzen, an welche Seite Sie es andocken möchten. Bei WPF bestimmt das Panel, auf dem sich das Steuerelement befindet, normalerweise die Position des Steuerelements und manchmal sogar die Standardgröße. Wenn Sie neu in den Layouts von WPF sind, würde ich empfehlen, diesen Artikel durchzulesenIch benutze gerne das "Line" -Steuerelement. Sie können genau steuern, wo das Trennzeichen beginnt und endet. Obwohl es nicht gerade ein Trennzeichen ist, funktioniert es genauso, insbesondere in einem StackPanel.
Die Liniensteuerung funktioniert auch innerhalb eines Rasters. Ich bevorzuge die Verwendung des StackPanel, da Sie sich keine Gedanken über überlappende Steuerelemente machen müssen.
X1 = x Startposition (sollte für eine vertikale Linie 0 sein)
X2 = x Endposition (X1 = X2 für eine vertikale Linie)
Y1 = y Startposition (sollte für eine vertikale Linie 0 sein)
Y2 = y Endposition (Y2 = gewünschte Linienhöhe)
Ich benutze "Rand", um Polster auf jeder Seite der vertikalen Linie hinzuzufügen. In diesem Fall befinden sich links 5 Pixel und rechts von der vertikalen Linie 10 Pixel.
Da Sie mit der Liniensteuerung die x- und y-Koordinaten von Anfang und Ende der Linie auswählen können, können Sie sie auch für horizontale Linien und Linien in einem beliebigen Winkel dazwischen verwenden.
quelle
Dies ist eine sehr einfache Methode ohne Funktionalität und mit allen visuellen Effekten.
Verwenden Sie ein Raster und passen Sie es einfach an.
Nur ein anderer Weg, es zu tun.
quelle
<Grid HorizontalAlignment="Stretch" Height="1" Margin="0,10" Background="Black"/>
Vertikaler Separator
horizontaler Separator
quelle
Von http://social.msdn.microsoft.com/Forums/vstudio/en-US/12ead5d4-1d57-4dbb-ba81-bc13084ba370/how-can-i-add-a-line-as-a-visual-separator -to-the-content-control-like-grid? forum = wpf :
Probieren Sie dieses Beispiel aus und prüfen Sie, ob es Ihren Anforderungen entspricht. Es gibt drei Hauptaspekte.
Line.Stretch ist auf Füllen eingestellt.
Für horizontale Linien ist die vertikale Ausrichtung der Linie unten und für vertikale Linien die horizontale Ausrichtung rechts eingestellt.
Wir müssen dann der Zeile mitteilen, wie viele Zeilen oder Spalten überspannt werden sollen. Dies erfolgt durch Bindung an die Eigenschaft RowDefinitions oder ColumnDefintions count.
quelle
verwenden
quelle
So habe ich es gemacht:
quelle