0

我需要在 WPF/XAML 中重现这个 CSS:

<div style="position: relative;">
    <div style="position: absolute; top: 0; left: 0;">Foo bar</div>
    <div style="position: absolute; top: 0; left: 0;">Foo bar</div>
</div>

本质上,我需要在它们的容器中将两个元素放置在彼此之上。

到目前为止,我有:

<StackPanel>
    <TextBlock Text="Foo bar">
    <TextBlock Margin="0,-16,0,0" Text="Foo bar">
</StackPanel>

上面的问题是它不能扩展。我不想硬编码任何保证金数字。

4

2 回答 2

1

然后放置在网格的同一单元格上:

<Grid>
    <TextBlock Text="Foo bar">
    <TextBlock Text="Bar foo">
</Grid>

注意:由于没有RowDefinitionsColumnDefinitions指定,网格有一个默认的 1 行 / 1 列。由于元素没有属性Grid.RowGrid.Column集合,它们被放置在 0,0 单元格上

于 2012-04-20T16:46:58.317 回答
0

当我需要进行非像素定位时,我通常将我的项目放在一个网格中,其中的行或列在两侧带有百分比或“星形”值用于填充。这确实可以扩展。

所以像:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Height="10*"/>
        <ColumnDefinition Height="80*"/>
        <ColumnDefinition Height="10*"/>
    </Grid.ColumnDefinitions>
    <TextBlock Text="FooBar" Grid.Column="1"/>
</Grid>

无论缩放如何,都会渲染一个左边缘距左侧 10% 的文本框。

于 2012-04-20T16:51:25.873 回答