2010-08-09 16 views
9

Bir Grid düzen kapsayıcısında bulunan bir DataGrid denetimi var ve otomatik olarak kaydırma işlemini çalışmak için DataGrid üzerinde göremiyorum. Ben DataGridScrollViewer bir çevrede ve dolayısıyla kaydırma çubuğunu eklemeyi sarmak, ancak otomatik kaydırma çalışmıyor.WPF Datagrid'de kaydırma çubuğu/kaydırma nasıl etkinleştirilir

Şimdi, DataGrid'a yeni girişler eklendiğinde, DataGrid dikey olarak genişler. Bunun yerine genişleyen bütün DataGrid arasında, dikey kaydırma çubuğu daha fazla öğe gösterebilir orijinal dikey boyutundan daha eklenir DataGrid öğelere kaydırma izin etkin olmasını istiyorum. Elbette, bunun gerçekleşmesi için kolay bir yol olmalı.

+0

[WPF Datagrid - Herhangi bir Scrollbar gösterilmiyor] 'ın olası kopyası (https://stackoverflow.com/questions/24015890/wpf-datagrid-not-showing-any-scrollbar) –

cevap

16

Tamam, Ben bile sonuçta bir ScrollViewer etrafında veri kılavuzunu sarmak gerek yoktu çıkıyor ... bu bir çözdün. Tek yapmam gereken, veri ızgarasının yüksekliğini tanımlamak ("Yükseklik" özelliğini kullanarak) ve öğeler yüksekliğin ötesine geçen eklendiğinde datagrid kaydırma çubuğu görünür. Görünüşe göre yükseklik tanımlanmadığında dinamik ve yeni öğeler eklendikçe dikey olarak genişler.

Buna ek olarak, datagrid'imde her satır için tanımlanmış bir satır ayrıntısı vardı, bu yüzden birden çok satır ayrıntısı genişletildiğinde, kaydırma etkinleştirildi, ancak kaydırma çubuğu davranışı biraz o yumuşak kaydırma aşağıdaki datagrid özellik ekleyerek edildi yapmak için (kaydırma düzgün değildi gibi) ve düzeltme tuhaf: ScrollViewer.CanContentScroll = "False" (Ben datagrid kontrolüdür tahmin ediyorum/a ScrollViewer devralır) ve sonra kaydırma düzgün ve normal beklenen kaydırma davranışı gibi oldu.

+13

Açıkça kalmadan uzak durmanızı öneririm Datagrid'in yüksekliği. Bunun yerine, bir DockPanel veya kılavuz içinde veri kılavuzunu koymak ve dikey kaydırma otomatik olarak gerçekleşecektir ve datagrid kendisine kullanılabilir tüm alanı kullanacaktır. – knockando