Sto tentando di nascondere una colonna in un Grid
con un GridSplitter
quando si fa clic su un pulsante (il pulsante imposta la visibilità di tutti gli elementi nella terza colonna da comprimere) . Se non muovo il GridSplitter
funziona correttamente e la terza colonna scompare, ma se sposto il GridSplitter
il contenuto scompare ma le altre colonne non vengono ridimensionate per riempire lo spazio vuoto.WPF - Le colonne non si nascondono correttamente quando viene spostato GridSplitter
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="25"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition x:Name="a" Width="*"/>
<ColumnDefinition x:Name="b" Width="3"/>
<ColumnDefinition x:Name="c" Width="Auto" MaxWidth="600"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Grid.Row="0" HorizontalAlignment="Stretch" Background="Green">
<Image Source="te/Dante.png" Height="Auto" Margin="0,128,2,71"/>
</Border>
<Button Grid.Column="0" Grid.Row="0" Width="30" Height="30" Margin="0,10,10,0" HorizontalAlignment="Right" VerticalAlignment="Top" Click="Button_Click"></Button>
<GridSplitter Width="5" Grid.Column="1" Grid.Row="0" Grid.RowSpan="2" ResizeDirection="Columns" HorizontalAlignment="Left" Background="White" BorderBrush="Black" BorderThickness="1,0" ResizeBehavior="PreviousAndCurrent"/>
<WrapPanel x:Name="wpC" Grid.Column="2" Grid.Row="0" Grid.RowSpan="2" MinWidth="300" HorizontalAlignment="Stretch" Background="Aqua" Panel.ZIndex="-1"></WrapPanel>
</Grid>
Ecco un esempio del mio problema (GIF):
come posso risolvere questo problema? Forse rispettando il pattern MVVM.
Visualizza come esattamente si * * nascondere qualcosa? L'utilizzo di 'x: Name' non è già puro MVVM (presumo che tu stia impostando la larghezza della definizione della colonna nel codice retrostante). A proposito, è possibile utilizzare [ScreenToGif] (https://screentogif.codeplex.com/) e acquisire alcuni fotogrammi per dimostrare il problema, vedere [la mia domanda] (http://stackoverflow.com/q/36915180/1997232). – Sinatr
ho aggiunto la gif, fino ad ora ho fatto una soluzione usando il codice dietro. Mi piacerebbe sapere se c'è un modo per risolvere questo problema senza usare il codice dietro – Jacopo