首先,我是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之间的关系。
答案 0 :(得分:0)
为了找出元素所在的列,请使用Grid
类:
int columnIndex = Grid.GetColumn(elementName);
要访问相应列,请访问网格上的列定义集合:
ColumnDefinition myColumn = uxFootbargrid.ColumnDefinitions[columnIndex];
获得ColumnDefinition后,您可以继续更改所需的属性