WPF DataGrid'de bir kaydırma (dikey veya yatay) şu anda gösteriliyor nasıl kontrol edilir? HorizontalScrollBarVisibility ve VerticalScrollBarVisibility, davranışı ayarlamak için kullanılır ve bunlar Otomatik olarak ayarlanır.WPF DataGrid'de bir kaydırmanın şu anda görünüp görünmediğini nasıl kontrol edebilirim?
11
A
cevap
22
ScrollViewer scrollview = FindVisualChild<ScrollViewer>(dataGrid);
Visibility verticalVisibility = scrollview.ComputedVerticalScrollBarVisibility;
Visibility horizontalVisibility = scrollview.ComputedHorizontalScrollBarVisibility;
10
İşte FindVisualChild bir uygulama görebilirsiniz:
private childItem FindVisualChild<childItem>(DependencyObject obj)
where childItem : DependencyObject
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(obj, i);
if (child != null && child is childItem)
return (childItem)child;
else
{
childItem childOfChild = FindVisualChild<childItem>(child);
if (childOfChild != null)
return childOfChild;
}
}
return null;
}
0
Private Function FindVisualChild(Of childItem As DependencyObject)(ByVal obj As DependencyObject) As childItem
For i As Integer = 0 To VisualTreeHelper.GetChildrenCount(obj) - 1
Dim child As DependencyObject = VisualTreeHelper.GetChild(obj, i)
If child IsNot Nothing AndAlso TypeOf child Is childItem Then
Return CType(child, childItem)
Else
Dim childOfChild As childItem = FindVisualChild(Of childItem)(child)
If childOfChild IsNot Nothing Then
Return childOfChild
End If
End If
Next i
Return Nothing
End Function
Ben FindVisualChild kendim uygulamak zorunda, öyle mi? –
Evet, etrafta bir dizi uygulama var: http://stackoverflow.com/questions/980120/finding-control-within-wpf-itemscontrol –