Visual Basic 中学校 掲示板 [WPF]コントロールサイズの固定について
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
[WPF]コントロールサイズの固定について
[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が親コントロール以上の幅にならないようにするにはどうすればいいのでしょうか?
また、それぞれの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が親コントロール以上の幅にならないようにするにはどうすればいいのでしょうか?