Visual Basic 中学校 掲示板 [WPF]コントロールサイズの固定について
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
[WPF]コントロールサイズの固定について
削除
削除
削除
削除
削除
削除
削除
削除
削除
削除
キャンセル
保存
長すぎるタグやスペースを含むタグなどは登録されず無視されます。
タグの編集
返答する
投稿者
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が親コントロール以上の幅にならないようにするにはどうすればいいのでしょうか?
返答する
また、それぞれの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が親コントロール以上の幅にならないようにするにはどうすればいいのでしょうか?