非常に広いXAMLコントロールがあります。親のサイズに影響するので、レイアウトを変更したくありません。コントロールがクリップされるかどうかは関係ありませんが、次のようにします。
- コントロールをその親の幅にし、
- 親の幅に影響を与えたくありません。
関心のある親コントロールのWidthをActualWidthにバインドすることでこれを実現できることはわかっています。ただし、子を無視して親からサイズを取得するパネルなどがあります。
これは星サイズの列を持つグリッド内にあるため、ScrollViewer内に配置するだけでは役に立ちません。ScrollViewerはグリッドを埋めるために成長します。
次の例では、ボタンが中央の列の幅を制御し、テキストブロックが最大でボタンが占めるスペースの量を占めるようにします。
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Button Content="asdsadsad" Grid.Row="1" Grid.Column="1"/>
<TextBlock IsHitTestVisible="True" Opacity="0" Grid.Row="1" Grid.Column="1" Text="sdfsdfdsfdfhfkjahslkjfhsafhsakjhflkjsahflkjsahdflkjhsadfsdfkgljdsfkgjfdsjgdshf" />
</Grid>