我在 Visual Studio 2012 和 WPF 上遇到了最烦人的问题,我希望能得到一些帮助。我有一个带有子元素的简单网格,比如 TextBlocks,以及网格的单元格。TextBlocks 被设置为在单元格内相对定位(例如,使用 Left 的 HorizontalAlignment)。一切都很好,直到我敢于调整网格的列或行的大小。然后,Visual Studio 插入 Margin 和 Width/Height 属性以与父/子元素的结果位置保持一致。这一切都在静默中发生,如果我决定进一步减小列的大小,直到后来我才注意到它,突然 TextBlock 被剪裁,因为它的 Margin 属性被插入。我必须遍历每个子元素并手动删除这些额外的属性。在我当前的项目中,我不得不这样做近 100 次,而且我在网上找不到任何东西来弄清楚如何告诉 Visual Studio 退出并停止采取这些窃取我试图实现的漂亮格式的自由. 这是一个供参考的代码片段。但这发生在我项目中许多不同的网格实例上。
<Grid Canvas.Left="435" Canvas.Top="138" Height="61" Width="192">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="11*"/>
<ColumnDefinition Width="21*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Text="Subtotal:" HorizontalAlignment="Right" VerticalAlignment="Center" />
</Grid>
...在调整第 0 列的大小之后:
<TextBlock Grid.Row="0" Grid.Column="0" Text="Subtotal:" HorizontalAlignment="Right" VerticalAlignment="Center" Height="16" Margin="0,7" Width="47" />
当然还有其他人遇到过这个问题。请帮忙!
谢谢