我已将 uniformgrid 设置为 itemscontrol ItemsPanel.尚未设置行或列的编号。它根据屏幕尺寸进行调整。现在是否有可能获得行数?
当你在StackOverflow上提问时,你真的应该提供更多信息。如果您指定是要访问代码隐藏还是视图模型中的行数(答案会有所不同),我猜您已经收到了答案。
我猜你想在后面的代码中访问它们......对于此方法,您需要实现此方法:
public T FindVisualChild<T>(DependencyObject dependencyObject) where T :
DependencyObject
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(dependencyObject); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(dependencyObject, i);
if (child != null && child is T) return (T)child;
else
{
T childOfChild = FindVisualChild<T>(child);
if (childOfChild != null) return childOfChild;
}
}
return null;
}
然后使用此方法:
UniformGrid uniformGrid = FindVisualChild<UniformGrid>(ItemsControl);
此示例使用以下 XAML:
<ItemsControl Name="ItemsControl">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="3" Rows="2" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>