0

TextBlockで使用可能なスペースのみを収容するようにサイズを変更するにはどうすればよいStackPanelですか? 私のレイアウトStackPanelに限定されます。Grid問題を説明しただけですが、実際のプロジェクトではもう少し複雑なので、理想的には解決策は単純でなければなりません:)

<Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="200" />
        </Grid.ColumnDefinitions>

        <StackPanel Grid.Column="1" Grid.Row="1" 
            Orientation="Horizontal">
            <Button Content="Test" />
            <TextBlock Text="Test test" />
            <Button Content="Test 2" />
            <TextBlock Width="Auto">
                Some text that I want to trim with ellipse
            </TextBlock>
        </StackPanel>
    </Grid>
4

2 に答える 2

2

StackPanel別のものを作成する方がよいでしょうGrid

<Grid> 
    <Grid.RowDefinitions> 
        <RowDefinition Height="1*" />
        <RowDefinition Height="Auto" /> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="1*" />
        <ColumnDefinition Width="200" />
    </Grid.ColumnDefinitions> 

    <Grid Grid.Column="1" Grid.Row="1">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="1*"/>
        </Grid.ColumnDefinitions>
        <Button    Grid.Column="0" Content="Test" /> 
        <TextBlock Grid.Column="1" Text="Test test" /> 
        <Button    Grid.Column="2" Content="Test 2" /> 
        <TextBlock Grid.Column="3" Text="Some text that I want to trim with ellipse"/>
    </Grid>
</Grid>

「メイン」グリッドをいくつか変更しました。行と列が 1 つしかなく (index=0 から開始)、 と を設定するのが奇妙に見えるためですStackPanelGrid.Row="1"Grid.Column="1"

于 2012-07-02T23:24:05.173 に答える
1

適切な答えは、DockPanelの代わりに使用することですStackPanel。DockPanel の最後の項目は、まさに必要としていた残りのスペースに合わせてサイズ変更されます。

于 2012-07-04T00:39:35.330 に答える