C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

WPFのDataGridViewの高さを自動設定したい /くろ (19/05/13(Mon) 18:33) #90916
Re[1]: WPFのDataGridViewの高さを自動設定したい /Hongliang (19/05/13(Mon) 19:09) #90917
  └ Re[2]: WPFのDataGridViewの高さを自動設定したい /くろ (19/05/13(Mon) 19:30) #90918 解決済み


親記事 / ▼[ 90917 ]
■90916 / 親階層)  WPFのDataGridViewの高さを自動設定したい
□投稿者/ くろ (21回)-(2019/05/13(Mon) 18:33:36)

分類:[C#] 

DockPanelを設定した場合、DataGridの縦スクロールが表示されません。
    <DockPanel>
        <StackPanel DockPanel.Dock="Top"  Orientation="Horizontal">
        </StackPanel>        
        <StackPanel DockPanel.Dock="Bottom" Margin="0,10,0,0" Orientation="Horizontal">
        </StackPanel>
        <StackPanel x:Name="dataGridPanel" Margin="0,10,0,0">
            <DataGrid x:Name="dataGrid" VerticalScrollBarVisibility="Visible" ItemsSource="{Binding MainTable}">
            </DataGrid>
        </StackPanel>        
    </DockPanel>

上記XAMLだとDataGridのスクロールバーが表示されません。
DataGridにHeightが指定されていない事が原因と思うのですが
<DataGrid Height="Windowに収まる最大の高さ">とする事はできるでしょうか。
<DataGrid Height="Windowの高さ - 固定値">でも実現できそうですがどのような記述をすればよいでしょうか。

[ □ Tree ] 返信 編集キー/

▲[ 90916 ] / ▼[ 90918 ]
■90917 / 1階層)  Re[1]: WPFのDataGridViewの高さを自動設定したい
□投稿者/ Hongliang (796回)-(2019/05/13(Mon) 19:09:29)
DataGridがStackPanelの子であるのが問題です。
StackPanelはどんどん下/右に子要素を並べていく都合上、子要素が配置可能なサイズを無限大として扱います。
DataGridから見ると、親要素であるStackPanelは無限大の高さを提供してくれているので、スクロールバーを出す意味がないことになります。

まずこのDataGridの親のStackPanelをどうにかしましょう。
一番簡単なのはDockPanelに(StackPanelを挟まずに)直接DataGridを配置することですが。
[ 親 90916 / □ Tree ] 返信 編集キー/

▲[ 90917 ] / 返信無し
■90918 / 2階層)  Re[2]: WPFのDataGridViewの高さを自動設定したい
□投稿者/ くろ (22回)-(2019/05/13(Mon) 19:30:39)
> DataGridから見ると、親要素であるStackPanelは無限大の高さを提供してくれているので、スクロールバーを出す意味がないことになります。
なるほど!
StackPanelを取り除いたところ無事表示されました。
ありがとうございました。
解決済み
[ 親 90916 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -