3

在我的设计视图中,我有这个:

在此处输入图像描述

但是当我跑步时,我得到了这个:

在此处输入图像描述

这是我的代码:

<Viewbox Margin="95,49,399.4,246.4">
    <Grid Width="20" Height="20">
        <Ellipse Stroke="Black" HorizontalAlignment="Left" Width="20"/>
        <TextBlock HorizontalAlignment="Center" Text="i" TextAlignment="Center" VerticalAlignment="Center"/>
    </Grid>
</Viewbox>
<Viewbox Margin="21,43,21,243.4">
    <Grid Height="20">
        <TextBlock FontSize="8" HorizontalAlignment="Center" Text="Lorem ipsum dolor sit amet consecutetur" TextAlignment="Left" VerticalAlignment="Center"/>
    </Grid>
</Viewbox>

我有没有更好的方法来实现设计视图中的内容?而且,为什么两者之间有任何区别?

4

1 回答 1

1

我很确定这是因为您的窗口在运行时的大小不同,尽管这不是真正的问题。

您正在使用两个不同的视图框,每个视图框都通过使用距每个窗口边缘不同偏移量的边距固定到位。如果您使窗口更大或更小,则边距不会改变,但视图框内的大小会改变。

由于视图框会自动缩放其内容以适应可用区域的大小(请参阅http://msdn.microsoft.com/en-us/library/system.windows.controls.viewbox.aspx),这就是您的内容看起来不同。

如果我试图布局上面的内容,我会做一些简单的水平布局和居中布局;

 <StackPanel >
        <TextBlock FontSize="20" Text="Heading" HorizontalAlignment="Center"/>
        <StackPanel Orientation="Horizontal"  HorizontalAlignment="Center">
            <Grid x:Name="iGrid">
                <Ellipse Width="{Binding ElementName=iGrid, Path=ActualHeight}" Stroke="Black"/>
                <TextBlock Text="i" HorizontalAlignment="Center" VerticalAlignment="Center"/>
            </Grid>
            <TextBlock Text="Lorem ipsum"/>
        </StackPanel>
    </StackPanel>
于 2013-07-31T15:39:09.883 回答