网格列和列定义WPF之间的连接

时间:2017-08-03 17:47:02

标签: c# wpf visual-studio

首先,我是WPF的新手,我正在尝试找到动态调整网格列定义的正确方法

  <Grid x:Name="uxFootbarGrid" Height="40" Margin="0" VerticalAlignment="Bottom">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="7*"/>
                        <ColumnDefinition Width="8*"/>
                        <ColumnDefinition Width="105*"/>
                    </Grid.ColumnDefinitions>
                    <Grid x:Name="uxOrderStatusGrid" Margin="0" d:LayoutOverrides="LeftMargin, RightMargin, TopMargin, BottomMargin">
                        <TextBox Margin="0" TextWrapping="Wrap" Text="Status: CMP" VerticalContentAlignment="Center" Background="{x:Null}" BorderThickness="0" Foreground="White" Grid.Column="1"/>
                    </Grid>
                    <Grid Grid.Column="1" Margin="0" d:LayoutOverrides="LeftMargin, RightMargin, TopMargin, BottomMargin">
                        <TextBox x:Name="uxProcessingTextBox" Margin="0" Grid.Column="2" TextWrapping="Wrap" Text="Processing: D" Background="{x:Null}" Foreground="White" VerticalContentAlignment="Center" BorderThickness="0" TextChanged="uxProcessingTextBox_TextChanged"/>
                    </Grid>

                </Grid>

我在Grid中有网格。我正在以编程方式尝试找到它们之间的联系。

这个想法是:

foreach(column in masterGrid)
{
   getAllTextBoxes()
   getTotalWidth()
   setWidthToColumnDefinitionOfMasterGrid()
}

目前一切都很好,但我找不到它们所属的Control和Column Definition之间的关系。

1 个答案:

答案 0 :(得分:0)

为了找出元素所在的列,请使用Grid类:

int columnIndex = Grid.GetColumn(elementName);

要访问相应列,请访问网格上的列定义集合:

ColumnDefinition myColumn = uxFootbargrid.ColumnDefinitions[columnIndex];

获得ColumnDefinition后,您可以继续更改所需的属性