2016-04-28 5 views
0

GridSplitterを使用してをサイズ変更することはできません。アイテムです。ここでは、XAMLは次のとおりです。GridSplitterは次のサイズを変更します

<Grid> 
    <!-- this works --> 
    <Grid Background="Gray" HorizontalAlignment="Left"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="100" /> 
      <ColumnDefinition Width="auto" /> 
      <ColumnDefinition Width="auto" /> 
     </Grid.ColumnDefinitions> 
     <GridSplitter Grid.Column="1" Width="10" ResizeBehavior="PreviousAndNext" /> 
    </Grid> 
    <!-- this doesn't --> 
    <Grid Background="Gray" HorizontalAlignment="Right"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="auto" /> 
      <ColumnDefinition Width="auto" /> 
      <ColumnDefinition Width="100" /> 
     </Grid.ColumnDefinitions> 
     <GridSplitter Grid.Column="1" Width="10" ResizeBehavior="PreviousAndNext" /> 
    </Grid> 
</Grid> 

とデモ:右の1はいくつかの問題を持っていながら、サイズを変更することができるものGridを左

注意してください。あなたは自分自身にxamlを与えて、私が何を意味するのかを試すことができます。

どうすればいいですかアイテムのサイズ変更は機能しますか?

答えて

1

私はそれがColumnDefinition幅

<Grid> 
    <Grid Background="Gray" HorizontalAlignment="Left"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="100" /> 
      <ColumnDefinition Width="auto" /> 
      <ColumnDefinition Width="*"/> 
     </Grid.ColumnDefinitions> 
     <GridSplitter Grid.Column="1" Width="10" ResizeBehavior="PreviousAndNext" /> 
    </Grid> 
    <Grid Background="Gray" HorizontalAlignment="Right"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="*" /> 
      <ColumnDefinition Width="auto" /> 
      <ColumnDefinition Width="100" /> 
     </Grid.ColumnDefinitions> 
     <GridSplitter Grid.Column="1" Width="10" ResizeBehavior="PreviousAndNext" /> 
    </Grid> 
</Grid> 

と私はより多くのが好きな別の変形変更することで働かせた:あなたは説明なぜ `*`働いていると `auto`も取り組んでいる

<Grid> 
    <Grid Background="Gray"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="100" /> 
      <ColumnDefinition Width="auto" /> 
      <ColumnDefinition Width="*" /> 
      <ColumnDefinition Width="auto" /> 
      <ColumnDefinition Width="100" /> 
     </Grid.ColumnDefinitions> 

     <GridSplitter Grid.Column="1" Width="10" ResizeBehavior="PreviousAndNext" /> 

     <Border Grid.Column="2" Background="Gold"/> 

     <GridSplitter Grid.Column="3" Width="10" ResizeBehavior="PreviousAndNext" /> 
    </Grid> 
</Grid> 
+0

を持っていますが、一方向でのみ?私の問題は、*リサイズ不可能な列に*オプションのコンテンツを入れることです。なぜなら、これは 'auto'でなければならないからです。 '*'と一緒に使えるかどうか分からないので、分かります。 – Sinatr

+0

@Sinatr、私はそれがスプリッタの内部論理だと推測することができます。グリッドは左右の水平方向の位置合わせをしているので、 '*'は 'auto'になります – ASh

関連する問題