5

私にとって完璧な解決策である以下の質問からのエキスパンダー(受け入れられた答えを参照)が欲しいです。右側に置きたいだけです。

エキスパンダーとグリッドを組み合わせる(サイズ変更可能なエキスパンダー)

右から左に拡張するために、類似した動作の設定を変更しました。(私は何が起こっているのかをよりよく見るために要素を強調しました):

<Expander Grid.Column="1" Header="Test" ExpandDirection="Left" 
        BorderThickness="10" BorderBrush="Black" HorizontalAlignment="Right" >
  <Expander.Content>
    <Grid >
       <Grid.ColumnDefinitions>
         <ColumnDefinition Width="Auto"/>
         <ColumnDefinition Width="Auto" />
       </Grid.ColumnDefinitions>
       <GridSplitter Grid.Column="0" Width="10" Background="Green" 
                  ResizeDirection="Columns" ResizeBehavior="CurrentAndNext" />
       <TextBox Grid.Column="1" Text="Lorem ipsum dolor sit" 
             BorderThickness="10" BorderBrush="Red"/>
    </Grid>
  </Expander.Content>
</Expander>

スプリッターを右に移動すると、スプリッターの左側の領域のサイズが変更されます。他の多くの組み合わせを試しましたが、ほとんど同じ望ましくない動作が発生しました。スプリッターの左側の領域が奇妙に爆発することがありますが、TextBoxは変更されません。

4

1 に答える 1

10

このようにしてみてください:

<Expander Grid.Column="1" Header="Test" ExpandDirection="Left"
    BorderThickness="10" BorderBrush="Black" HorizontalAlignment="Right">
  <Expander.Content>
    <Grid>
       <Grid.ColumnDefinitions>
         <ColumnDefinition Width="*" MinWidth="10" />
         <ColumnDefinition Width="Auto" />
       </Grid.ColumnDefinitions>
       <GridSplitter Grid.Column="0" Width="10" Background="Green"
                  ResizeDirection="Columns" ResizeBehavior="CurrentAndNext" />
       <TextBox Grid.Column="1" Text="Lorem ipsum dolor sit"
             BorderThickness="10" BorderBrush="Red"/>
    </Grid>
  </Expander.Content>
</Expander>
于 2012-01-13T13:22:05.730 に答える