ViewBox中的奇怪TextBlock对齐方式

时间:2013-11-03 02:32:19

标签: xaml visual-studio-2012 winrt-xaml expression-blend blend

我正试图将一个数字居中在ViewBox中,而且我的结果非常令人沮丧。我尝试使用TextAlignment,Horizo​​ntalAlignment,VerticalAlignment等对其进行居中...当我得到一个数字正确居中(例如,3)时,另一个数字偏离中心(例如,4):

enter image description here

如您所见,我使用以下内容:

    <Border x:Name="bdrMain" Background="#FF0095E2">
        <Grid>
            <Viewbox Stretch="Uniform">
                <Ellipse x:Name="elpRing" Stroke="White" Margin="1" StrokeThickness="0.75" Width="12" Height="12"/>
            </Viewbox>

            <Viewbox Stretch="Uniform">
                <TextBlock x:Name="txtValue" FontFamily="Assets/Fonts/HelveticaNeueLTStd-Th.otf#HelveticaNeueLT Std Thin" Text="3" FontWeight="Thin"/>
            </Viewbox>
        </Grid>
    </Border>

任何人都知道为什么定心这么困难???

1 个答案:

答案 0 :(得分:2)

当使用ViewBox这样的东西时,使用大型元素并使视图框缩小尺寸会容易得多。此外,有一个放大(或缩小)一个元素大小的视图框更容易编写(在运行时也更有效)。

试试这个:

<Border x:Name="bdrMain"
        Background="#FF0095E2">
    <Viewbox>
        <Grid>
            <Ellipse x:Name="elpRing"
                        Stroke="White"
                        StrokeThickness="2"
                        Width="32"
                        Height="32" />

            <TextBlock x:Name="txtValue"
                        Margin="1,2,0,0"
                        FontFamily="Assets/Fonts/HelveticaNeueLTStd-Th.otf#HelveticaNeueLT Std Thin"
                        Text="3"
                        FontSize="32"
                        HorizontalAlignment="Center"
                        VerticalAlignment="Center" />

        </Grid>
    </Viewbox>
</Border>

我的机器上当前没有字体,因此调整文本块上的边距以使其居中。您可以使用椭圆大小的64x64 - 将笔划粗细放大到4,将文本块上的字体大小放大到64或左右。