Я пытаюсь центрировать цифру в ViewBox и получаю крайне разочаровывающие результаты. Я пытался центрировать его с помощью TextAlignment, HorizontalAlignment, VerticalAlignment и т. д. Когда я правильно центрирую одну цифру (например, 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>
Кто-нибудь знает, почему центрирование такое сложное???
Ответ 1 · рейтинг 2 · XAMeLi
При использовании 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 или около того.