我尝试更改几个网格中所有项目的宽度,这些网格也在网格中。这些项目是文本框,复选框,滑块,按钮等。
以下是我的解决方案:
foreach (Control itemGrid in mainGrid.Children)
{
if (itemGrid.GetType() == typeof(Windows.UI.Xaml.Controls.Grid));
{
foreach (UIElement item in itemGrid.Children)
item.Width = 100;
}
}
这是一个例子,了解我的意思。
<Grid HorizontalAlignment="Left" Height="885" Margin="1186,226,0,0" VerticalAlignment="Top" Width="598" Background="Black">
<Grid HorizontalAlignment="Left" Height="220" Margin="74,53,0,0" VerticalAlignment="Top" Width="433" Background="#FF727272">
<Button Content="Button" HorizontalAlignment="Left" Margin="54,36,0,0" VerticalAlignment="Top" Height="71" Width="143"/>
<Button Content="Button" HorizontalAlignment="Left" Margin="283,7,0,0" VerticalAlignment="Top" Height="71" Width="143"/>
<TextBlock HorizontalAlignment="Left" Margin="57,131,0,0" TextWrapping="Wrap" Text="More Items .." VerticalAlignment="Top" Width="351" Height="79" FontSize="48"/>
</Grid>
<Grid HorizontalAlignment="Left" Height="240" Margin="74,587,0,0" VerticalAlignment="Top" Width="433" Background="#FF727272">
<TextBlock HorizontalAlignment="Left" Margin="72,81,0,0" TextWrapping="Wrap" Text="More Items .." VerticalAlignment="Top" Width="351" Height="79" FontSize="48"/>
</Grid>
<Grid HorizontalAlignment="Left" Height="217" Margin="74,314,0,0" VerticalAlignment="Top" Width="433" Background="#FF727272">
<TextBlock HorizontalAlignment="Left" Margin="72,81,0,0" TextWrapping="Wrap" Text="More Items .." VerticalAlignment="Top" Width="351" Height="79" FontSize="48"/>
</Grid>
</Grid>
的问候, 克里斯蒂安
答案 0 :(得分:1)
您可能想尝试使用VisualTreeHelper:
VisualTreeHelper.GetChildrenCount()
VisualTreeHelper.GetChild()
答案 1 :(得分:0)
谢谢你的回答。我找到了解决问题的方法。
IEnumerable<Grid> grids = mainGrid.Children.OfType<Grid>();
foreach (Grid itemGrid in grids)
{
IEnumerable<FrameworkElement> items = itemGrid.Children.OfType<FrameworkElement>();
foreach (FrameworkElement item in items)
{
item.Width = 100;
}
}