如何通过wpf中的行和列获取网格子元素? [英] how to get grid children by its row and column in wpf?

查看:777
本文介绍了如何通过wpf中的行和列获取网格子元素?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

<Grid x:Name="LayoutRoot" HorizontalAlignment="Center" VerticalAlignment="Center" >
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="Auto"/>
    </Grid.ColumnDefinitions>
    <Button Width="150" Height="50" x:Name="Btn1" Content="Button1" Grid.Row="0" Grid.Column="0"/>
    <Button Width="150" Height="50" x:Name="Btn2" Content="Button2" Grid.Row="0" Grid.Column="1"/>
    <Button Width="150" Height="50" x:Name="Btn3" Content="Button3" Grid.Row="2" Grid.Column="0"/>
    <Button Width="150" Height="50" x:Name="Btn4" Content="Button4" Grid.Row="2" Grid.Column="1"/>
</Grid>

wpf中的C#代码

C# code in wpf

Visual childVisual = (Visual)VisualTreeHelper.GetChild(LayoutRoot,0);

通过上面的代码,我可以得到网格的第一个子节点(LayoutRoot)。但是我想要得到网格的孩子由它的行或列。我应该怎么做。

With above code i can get the First child of the grid(LayoutRoot).But i want to get grid child by it's rows or columns. What should i do for that.

在此先感谢。

Thanks in Advance.

推荐答案

根据 Grid.Children .getrow.aspx> Grid.GetRow GetColumn 为每个孩子返回。

Filter the Grid.Children based on what Grid.GetRow and GetColumn returns for every child.

例如

var itemsInFirstRow = LayoutRoot.Children
                          .Cast<UIElement>()
                          .Where(i => Grid.GetRow(i) == 0);

这篇关于如何通过wpf中的行和列获取网格子元素?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆