Wpf 设置文本块与网格的宽度

Wpf 设置文本块与网格的宽度,wpf,height,width,Wpf,Height,Width,如果网格中有文本块,那么设置其宽度和高度的最佳方法(性能方面)是什么 在文本块的属性中设置它们是否比将其设置为网格的属性更好 基本上,我要问的是以下哪一项更好: <Grid Width="200" Height="200"> <TextBlock /> </Grid> vs 在关于MSDN的文章中,有一小部分是关于性能的,但也有一篇专门关于性能的文章。也许这里面有些有用的东西 在我看来,本文档并未对此问题做出任何声明,但这可能无关紧要,或者差异

如果网格中有文本块,那么设置其宽度和高度的最佳方法(性能方面)是什么

在文本块的属性中设置它们是否比将其设置为网格的属性更好

基本上,我要问的是以下哪一项更好:

<Grid Width="200" Height="200">
    <TextBlock />
</Grid>

vs


在关于MSDN的文章中,有一小部分是关于性能的,但也有一篇专门关于性能的文章。也许这里面有些有用的东西


在我看来,本文档并未对此问题做出任何声明,但这可能无关紧要,或者差异很小。

我真的不明白您具体在问什么


但我确实喜欢将网格设置为拉伸窗口,将文本框的宽度和高度设置为自动或NAN,然后为文本框定义特殊的边距和对齐方式 纯粹使用网格约束文本框并不是设置文本框宽度的好方法。网格更适合布置多个控件。但是,这是完全可以接受的:

<Grid Width="200" Height="200">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="200" />
        <ColumnDefinition Width="1*" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>

    <TextBlock Grid.Column="1" HorizontalAlignment="Stretch" Margin="5,0" />
</Grid>

这与@Ahmed的建议是一致的


一般来说,对于XAML布局,建议使用比例布局而不是固定大小的布局,这样您的UI就可以正确调整大小,而不会受到任何代码的影响。这意味着最好让父元素尽可能多地指定大小,只在必须的地方使用固定大小。(设置MinWidth/MaxWidth/etc很好,只要尽量避免显式设置Width,高度属性也是如此)。

我没有任何统计数据来支持这一点,但由于WPF的渲染/布局引擎通过首先测量所有内容的子元素来工作,有人会假设,如果手动定义子元素的大小,它将产生边际效果


在这个场景中,如果您所做的只是包装一个TextBlock元素,那么最好使用
之类的工具。如果有多个元素,请查看是否可以使用

可以详细说明将其设置为网格属性的含义吗?我添加了一些代码来详细说明我的问题~使用网格纯粹约束文本框并不是设置文本框宽度的好方法。我知道网格更多的是布局子元素,但就性能而言,在网格或子元素本身中设置宽度更好吗?
<Grid Width="200" Height="200">
    <TextBlock />
</Grid>
<Grid Width="200" Height="200">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="200" />
        <ColumnDefinition Width="1*" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>

    <TextBlock Grid.Column="1" HorizontalAlignment="Stretch" Margin="5,0" />
</Grid>