Ich habe eine App mit Raster mit 3 Spalten. Der Gittersplitter zwischen der ersten und der zweiten Spalte funktioniert einwandfrei. Um den Splitter zwischen der zweiten und dritten Spalte zu bekommen, habe ich eine Spalte für den Splitter gemacht. (Also jetzt ist die dritte Spalte wirklich die vierte.)WPF - GridSplitter mit drei Spalten
Wenn ich die Größe der anderen Spalten verkleinern auch schrumpfen. Ich nehme an, das liegt daran, dass ich sie auf relative Größe eingestellt habe. Aber ich weiß nicht, wie ich das beheben soll.
Hier ist ein XAML Pad Ready Beispiel meines Problems. Stecken Sie dieses in das XAML-Pad und versuchen Sie dann, die letzte Spalte zu verkleinern.
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="1*" />
</Grid.ColumnDefinitions>
<StackPanel Background="#feca00" Grid.Column="0">
<TextBlock FontSize="35" Foreground="#58290A"
TextWrapping="Wrap">Left Hand Side</TextBlock>
</StackPanel>
<GridSplitter Width="10" />
<Border CornerRadius="10" BorderBrush="#58290A"
BorderThickness="5" Grid.Column="1">
<TextBlock FontSize="25" Margin="20" Foreground="#FECA00"
TextWrapping="Wrap">Right Hand Side</TextBlock>
</Border>
<GridSplitter Grid.Column="2" HorizontalAlignment="Right" VerticalAlignment="Stretch" Width="5"></GridSplitter>
<TabControl Grid.Column="3" Name="tabControl1">
<TabItem Header="Add Links" Name="tabAddLinks">
<Grid></Grid>
</TabItem>
</TabControl>
</Grid>
</Page>
Danke für die Hilfe!
EDIT: Es wurde vorgeschlagen, dass möglicherweise beheben es in ihren eigenen Spalten beide Teiler haben. Ich habe das ausprobiert und nun verkleinert der erste Splitter auch die Spalten wie der zweite Splitter. Hier
ist der XAML-Pad Code für dieses Beispiel:
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="1*" />
</Grid.ColumnDefinitions>
<StackPanel Background="#feca00" Grid.Column="0">
<TextBlock FontSize="35" Foreground="#58290A"
TextWrapping="Wrap">Left Hand Side</TextBlock>
</StackPanel>
<GridSplitter Grid.Column="1" HorizontalAlignment="Right" VerticalAlignment="Stretch" Width="5"></GridSplitter>
<Border CornerRadius="10" BorderBrush="#58290A"
BorderThickness="5" Grid.Column="2">
<TextBlock FontSize="25" Margin="20" Foreground="#FECA00"
TextWrapping="Wrap">Right Hand Side</TextBlock>
</Border>
<GridSplitter Grid.Column="3" HorizontalAlignment="Right" VerticalAlignment="Stretch" Width="5"></GridSplitter>
<TabControl Grid.Column="4" Name="tabControl1">
<TabItem Header="Add Links" Name="tabAddLinks">
<Grid></Grid>
</TabItem>
</TabControl>
</Grid>
</Page>
Segne dich! Ich habe mir die Haare ausgezogen !!!!! – Vaccano
update: Ich denke, es ist mit der ResizeBehaviour-Eigenschaft des GridSplitter zu tun, wird standardmäßig zu BasedOnAlignment, wenn nicht angegeben, so nur die Spalte auf der rechten Seite des GridSplitter Spalte wird in der Größe geändert werden ... würde tiefer in die msdn doco gehen, um sicher zu sein. .. – kiwipom
Ja, segne dich wirklich! –