我使用Grid的典型表单在XAML中看起来像这样:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
....
<TextBlock Grid.Row="6" Text="Component"/>
<TextBox Grid.Row="6" Grid.Column="1" Text="{Binding Component.Name}"></TextBox>
<TextBlock Grid.Row="7" Text="Bussiness Process"/>
<TextBox Grid.Row="7" Grid.Column="1" Text="{Binding BusinessProcess.Name}"></TextBox>
</Grid>
字符串
有没有办法避免指定精确的行/列坐标?
基本上,我希望能够通过复制XAML来快速重新排序网格中的控件,现在我必须更改坐标,这很尴尬。我不想在设计器中对它们重新排序,因为这会给项添加一些不必要的属性。
3条答案
按热度按时间jv4diomz1#
不可以。不幸的是,Grid的工作方式是在子节点上定义
Grid.Row
和Grid.Column
附加属性-必须在每个子节点上指定它们。顺便说一句,Blend在让你移动这些东西而不会出现“额外”属性方面做得更好。你可能想试着在这种情况下试试。
jslywgbw2#
不,没有办法避免行/列编号。如果你不想安装MS Blend,你可以试试Karl Shifflett提供的精彩免费的Visual Studio插件:XAML Power Toys.在其他有用的东西,它允许你玩网格单元格...
axkjgtzd3#
我可能会迟到很久,但无论如何...;-)
托马斯Levesque的
SimpleGrid
可能是一个合适的解决方案:字符串
查看他的博客了解更多细节:https://thomaslevesque.com/2010/07/20/wpf-a-simpler-grid-using-xaml-attribute-syntax/