Xaml 视图框中的奇数文本块对齐
我试图在一个视图框中居中放置一个数字,结果非常令人沮丧。我尝试过使用文本对齐、水平对齐、垂直对齐等方法将其居中。。。当我将一个数字正确居中(例如,3)时,另一个数字偏离中心(例如,4): 如您所见,我使用以下方法: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">
<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左右。这有点更好,但并不完美。似乎是字体造成了问题。我会仔细考虑你的答案,并尝试获得正确的边距/填充。谢谢