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

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

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

WPFのDataGridViewの高さを自動設定したい

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■90916 / inTopicNo.1)  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の高さ - 固定値">でも実現できそうですがどのような記述をすればよいでしょうか。

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

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

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ