Ich habe ein Raster in meiner WPF-Anwendung, die derzeit horizontal und vertikal zentriert ist, keine große Sache. Ich möchte jedoch mein gesamtes Grid nach einer einzigen Grid-Zelle anstatt des gesamten Grids zentrieren. Ist das möglich? Hier ist eine kleine Illustration dessen, was ich erreichen möchte. Ich möchte, dass das rote Kreuz das Zentrum ist. Das erste Bild zeigt das gesamte Raster (das Raster ist das grüne Quadrat) zentriert, das zweite Bild zeigt das gesamte Raster zentriert nach der Zelle mit dem roten Kreuz. Ist das in XAML möglich? Ich habe keinen Code absichtlich bereitgestellt, weil ich nicht wirklich denke, dass das für diese Frage notwendig ist, es ist nicht so, als hätte ich einen Fehler oder etwas, das nicht funktioniert, ich habe nur keine Ahnung, wie ich das erreichen würde.Center Grid nach Rasterzelle in WPF
0
A
Antwort
2
Es gibt äußere Gitter, innere Gitter und Elemente, die zentriert werden sollen. Äußeres und inneres Gitter haben gleiche Zeilen- und Spaltengewichte. Layout passt sich
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="2*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid Grid.Column="1" Grid.ColumnSpan="3"
Background="LightGray"
Grid.Row="0" Grid.RowSpan="2">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Border Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="2"
Background="Green"/>
<Border Grid.Row="1" Grid.RowSpan="2" Grid.Column="0" Grid.ColumnSpan="2"
Background="Cyan"/>
</Grid>
</Grid>
0
Die einzige Möglichkeit, wie Sie dies erreichen können, ist nur, wenn Ihre UI-Komponenten eine feste Größe haben. Hier ist ein Codebeispiel, wie ich erreicht habe, was Sie gefragt haben.
<Window x:Class="StackStuff.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:StackStuff"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<DockPanel>
<Grid HorizontalAlignment="Center" VerticalAlignment="Center" Background="Red"
Width="150" Height="100" ClipToBounds="False">
<Border Margin="0,-150,-30,0" BorderBrush="Black" BorderThickness="1" Height="50"
Width="180">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50"/>
<ColumnDefinition Width="130"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" BorderThickness="1" BorderBrush="Black"/>
<Border Grid.Column="1" BorderThickness="1" BorderBrush="Black"/>
</Grid>
</Border>
<Border Margin="0,0,-180,0" BorderBrush="Black" BorderThickness="1"
Width="30" Height="100">
</Border>
</Grid>
</DockPanel>
Wie Sie sehen können, hat es sich für alle die Zellen fixiert.
Verwandte Themen
- 1. mehrere Steuerelemente in einer WPF Rasterzelle
- 2. Bootstrap Grid Overflow Center
- 3. Perfect Center auf WPF Canvas
- 4. Change Control Center in WPF
- 5. Grid Erweiterung in WPF
- 6. WPF - XAML Page Center zu Fenster
- 7. Grid ignoriert ClipToBounds in WPF
- 8. WPF Benutzerdefinierte Grid Control
- 9. WPF "hex grid" -Komponente
- 10. WPF Databound Grid Scaling
- 11. WPF: Center TabItems in einem TabControl
- 12. WPF ausgeblendet Grid Column
- 13. WPF Grid vs Stackpanel
- 14. Welche Tabelle/Grid Control in WPF?
- 15. WPF Grid zeigt keine Bildlaufleisten
- 16. WPF Canvas - Single Pixel Grid
- 17. WPF Grid Column Größe ändern
- 18. WPF - Center-Steuerelement (Label) innerhalb Canvas
- 19. Hat in WPF jemand ein Grid animiert?
- 20. Werte von Data Grid in WPF lesen
- 21. WPF: Dynamische Label-Zugabe in Grid
- 22. Unterschied zwischen DataGrid und Grid in WPF
- 23. Wpf - Bindung Combobox Werte innerhalb Grid
- 24. wxPython: wie Paste in einer Rasterzelle implementieren?
- 25. Center Popup in XAML
- 26. WPF: Slide Grid links mit Fade
- 27. Wie Etikett oder Textblock innerhalb eines WPF-Grid verstecken
- 28. Wie erstellen Sie eine Off-Center-PerspectiveCamera in WPF?
- 29. Grid-Spalten schrumpfen in Kendo-Grid nach Excel-Export
- 30. in WPF (nach DRY)
So möchten Sie das Rote Kreuz, um die Größe in der Mitte des Bildschirms zu sein, nicht wahr? nicht das gesamte Grid, das diese Zelle enthält, sondern nur die Zelle selbst. –
@LupuSilviu Ich habe ein Update gemacht, hoffe es macht jetzt mehr Sinn? – Markinson
Vielleicht, wenn Sie erklären, welches Problem Sie lösen möchten und nicht, wie Sie diese spezifische Lösung implementieren, können die Leute bessere Antworten (und eine bessere Gesamtlösung) liefern. Was ist der Zweck dieses Layouts? – ndonohoe