[WPF]コントロールサイズの固定について への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 SSD  (社会人) 投稿日時 2023/4/13 16:36:45
WPFでWindowにDockPanelを配置し、3つのScrollViewerをDockしています。(Top,Right,Bottom)
また、それぞれのScrollView内にFrameを配置しています。
FrameにはPageを表示しており、コントロールの操作に応じて表示するPageを切り替えています。
BottomにDockしたScrollViewerはIsLastChildFill = TrueによってFill状態です。

Fill状態のScrollViewerのFrameのPage内にはDockPanel、Card(Material Design In XAML Toolkit)、DcokPanel、DataGridという順に親子関係になるようにコントロール配置しています。

DataGridにはDataTableをバインドしています。
列数が多いのでDataGridの幅に連動してその親のDockPanelの幅が拡張され、またその親のCardの幅が...
という具合に幅が連動してPage幅はScrollViewerの幅を超えているため、HorizontalScrollBarが有効になっています。

Pageの幅はScrollViewerと同じ幅にして、DataGridのScrollViewer.HorizontalScrollBarVisibility="Auto"
で水平方向のスクロールに対応したいと思い、Page幅を以下のようにしました。

Width="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=ScrollViewer},Path=Width}"

ですが、実行すると幅が拡張されたままになってしまいます。
Pageが親コントロール以上の幅にならないようにするにはどうすればいいのでしょうか?