0

ウィンドウのサイズに基づいてサイズを変更するリストボックスがあります。リストボックス内の各項目には、(DataTemplateを介して)次のものが含まれます。

<Grid Height="20" HorizontalAlignment="Stretch">
            <ProgressBar HorizontalAlignment="Stretch" Height="20" Value="{Binding Path=Progress, Mode=OneWay}" />
            <TextBlock Margin="7,0,0,0" Text="{Binding Path=OperationTitle}" />

        </Grid>

プログレスバーはリストボックスのサイズに拡張されることになっています。これは、テキストブロック内のテキストがリストボックスよりも長い場合を除いて拡張されます。その場合、テキストブロックとプログレスバーはリストボックスよりも広くなり、水平スクロールバーがリストボックスの下部に表示されます。

プログレスバーとテキストブロックをリストボックスで可能な限り広くし、テキストブロック内のテキストがリストボックスよりも長い場合はテキストを切り落とすようにします。

現在、プログレスバーの幅は、ある場合にはそのコンテナによって制御され、別の場合にはその内容によって制御されます。私はそれが常にそのコンテナによって制御されることを望みます。

ありがとう!

4

2 に答える 2

0

こんにちは、あなたの質問を誤解していない場合は、これを試してください

 <Grid Height="20" HorizontalAlignment="Stretch">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="Auto" MaxWidth="100"/>
        </Grid.ColumnDefinitions>
        <ProgressBar HorizontalAlignment="Stretch" Height="20" Value="{Binding Path=Progress, Mode=OneWay}" Grid.Column="0" />
        <TextBlock Margin="7,0,0,0" Text="OperationTitle" Grid.Column="1" />
</Grid>

これが役立つことを願っており、それに応じてグリッドの 2 列目の maxWidth を設定することを忘れないでください。

于 2012-07-13T18:28:33.000 に答える
0

リストボックスに次のプロパティを追加してみてください

HorizontalContentAlignment="Stretch"
于 2012-07-13T18:30:51.523 に答える