Xaml 视图框中的奇数文本块对齐

Xaml 视图框中的奇数文本块对齐,xaml,visual-studio-2012,winrt-xaml,expression-blend,blend,Xaml,Visual Studio 2012,Winrt Xaml,Expression Blend,Blend,我试图在一个视图框中居中放置一个数字,结果非常令人沮丧。我尝试过使用文本对齐、水平对齐、垂直对齐等方法将其居中。。。当我将一个数字正确居中(例如,3)时,另一个数字偏离中心(例如,4): 如您所见,我使用以下方法: <Border x:Name="bdrMain" Background="#FF0095E2"> <Grid> <Viewbox Stretch="Uniform">

我试图在一个视图框中居中放置一个数字,结果非常令人沮丧。我尝试过使用文本对齐、水平对齐、垂直对齐等方法将其居中。。。当我将一个数字正确居中(例如,3)时,另一个数字偏离中心(例如,4):

如您所见,我使用以下方法:

    <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>


有人知道为什么居中如此困难吗?

当使用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左右。

这有点更好,但并不完美。似乎是字体造成了问题。我会仔细考虑你的答案,并尝试获得正确的边距/填充。谢谢