ボタンをクリックしたときにGrid
の列を非表示にしようとしています(3番目の列のすべての項目の表示が閉じられるようにボタンが設定されています) 。私がGridSplitter
を移動しないと正しく動作し、3番目の列は消えますが、GridSplitter
を移動するとコンテンツが消えますが、他の列は空きスペースを埋めるためにサイズ変更されません。ここでWPF - 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>
は私の問題の一例(GIF)です:
どのように私はこの問題を解決することができますか?おそらくMVVMパターンを尊重します。
ショーどのように正確にあなた*非表示*何か? 'x:Name'を使うことは、すでに純粋なMVVMではありません(私は、コード定義の幅をコードの後ろに設定していると仮定しています)。 Btw、あなたは[ScreenToGif](https://screentogif.codeplex.com/)を使用し、問題を示すためにいくつかのフレームをキャプチャすることができます。[私の質問](http://stackoverflow.com/q/36915180/1997232)を参照してください。 – Sinatr
gifを追加しました。これまではコードを使って解決策を作りました。コードを使わずにこの問題を解決する方法があるかどうかを知りたいのですが – Jacopo