2011-08-08 215 views
9

割り当てられた高さを横切るデータグリッド内のコンテンツを表示しないようにするため、VerticalScrollBarVisibility = "無効"にしました。私は上記の文を与えた後にスクロールバーを見ることができません。しかし、私はまだ下にスクロールして行を見ることができます。誰かが一緒にスクロールを無効にする方法を教えてもらえますか? おかげで、あなたのDatGridためVerticalScrollBarVisibilityを無効にしたらwpfでデータグリッド内のスクロールを無効にする方法C#

答えて

3

は、あなたがこのようScrollViewerののスクロール機能を無効にする必要があります。

ScrollViewer.CanContentScroll="False"

をしかし、あなたが行うとき、彼がすでに定義されていることを確認してくださいDataGrid全体とDataGrid行の標準高さを表示します。そうしないと、切り捨てられた行は表示されず、ユーザーはスクロールして表示することができません。

これが役に立ちます。

3

(そう、それはバーをスクロールする必要はありません)、データグリッドは、すべてのそれのコンテンツの表示を許可する:

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto" /> 
    </Grid.RowDefinitions> 
    <DataGrid x:Name="DataGrid" /> 
</Grid> 

あなたはより任意の場所で結果を置くことができます。それは所有者の寸法にサイズを縮小します

0

ちょうど列に適用される回答を追加したいと思います。場合によっては、特に追加の列が見えなくなるように高さが特別に調整されている場合、Datagridが目に見えない列にスクロールして表示されることがあります。私は、単にDataGridにLoadedハンドラを添付し、追加の列をすべて0の幅に設定して非表示にしました。

7

正しいアプローチは、ヒットターゲット

DataGrid.IsHitTestVisible = false; 
+0

ここで実際に機能するソリューションのみです。 –

+0

あなたは人生保護人です – user3091574

+0

実際にデータグリッド内をクリックできるようにしたい場合(これはマウスのスクロールを無視するだけです)、問題は解決しませんが、 – CJBrew

1

私は行選択を必要とするので私のために動作しませんでした受け入れられた解決策を無効にするだろう。 データグリッドパニング(マウスドラッグの場合)を無効にし、キーダウンイベント(キーボードの場合)を処理することで、すべての問題を解決しました。データグリッドXAMLで :

ScrollViewer.PanningMode="None" 

そして:

private void OnDatagridPreviewKeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.Key == Key.Right || e.Key == Key.Left) 
     e.Handled = true; 
} 

HTH:背後にあるコードで

PreviewKeyDown="OnDatagridPreviewKeyDown" 

編集:私の答えは列に適用されますが、すべてが行に対して似ています。

関連する問題