WPF DataGridの水平スクロールできない時の対処法

WPF DataGridの水平スクロールできない時の対処法

WPFのDataGridを使っていて水平方向のスクロールだけ出来なくなったので対処法をメモとして残しておきます。

とても簡単な理由ですぐに解決できますが、検索しても見つからずハマりました。

スクロールバーの表示・非表示のプロパティ関連の話はありません。おそらくそちらは検索すればすぐに見つかると思います。

今回はXaml側のwidthプロパティの設定が問題でした。

ScrollViewerはDataGridと合わせるとパフォーマンスが酷く低下するので使いません。

 

 

起こっている問題

DataGridの水平方向スクロールができない。スクロールバーが表示されない。

画像では右の状態。

 

 

解決策

DataGrid Columnのwidthに”Auto”または”*”(アスタリスク)が設定されていないか確認。ある場合は他のサイズを指定するか設定を消しましょう。

サンプル.xaml

<DataGrid Name="dataGrid02" AutoGenerateColumns="False" Grid.Column="1">
    <DataGrid.Columns>
        <DataGridTextColumn Header="ID" Binding="{Binding Id}"/>
        <DataGridTextColumn Header="タイトル" Binding="{Binding Title}"/>
        <DataGridTextColumn Header="著者" Binding="{Binding Author}" Width="40*"/>
    </DataGrid.Columns>
</DataGrid>

この場合はWidth=”40*“のアスタリスクの部分が余計です。

Xamlとcsファイルを上げておいたので最小構成で起動してみるのが早いと思います。

DataGrid自体にスクロールの機能があるので横幅と高さの設定が正しければ表示しきれない部分が出たときにはスクロールバーが現れます。

 

 

やはり触ってないと忘れてしまいますね・・・。

それとこれほど簡単な問題が調べてもすぐに解決しないとは残念です。

重複、翻訳サイトによる検索妨害は深刻です。

 

 コメント来た?
    ∩∩
   (´・ω・)
   _| ⊃/(___
 / └-(____/
  ̄ ̄ ̄ ̄ ̄ ̄ ̄
 来たら起こして。

   ⊂⌒/ヽ-、__
 /⊂_/____ /
  ̄ ̄ ̄ ̄ ̄ ̄ ̄

コメントを残す

メールアドレスが公開されることはありません。

内容をご確認の上、送信してください。URLを含むコメントは承認待ちになります。