Эффект выделенного шрифта для текста в WPF

Я искал способ создать схему для некоторого текста в WPF, чтобы сделать его более отличимым от фона. Оригинальный взгляд, который я пытаюсь имитировать, заключается в следующем

введите описание изображения здесь

Вы заметите, что шрифт действительно маленький, что делает эту проблему очень сложной. Все элементы управления и фрагменты, которые я обнаружил, что текст контура рисует контур в письмах, а не вокруг них, что делает эти элементы управления плохим выбором в моем случае. Даже чего-то простого, например, рисование теней для фальсификации границ недостаточно

введите описание изображения здесь

Мне было любопытно, знаете ли вы о некоторых элементах управления, которые могут очертить текст путем рисования контура за пределами букв, что позволяет мне использовать шрифты небольшого размера. В качестве альтернативы вы думаете, что спрайтовые шрифты, которые очень часто используются в играх, являются хорошим подходом? Если да, то какие библиотеки / элементы управления вы можете предложить?

1 ответ

Решение

В настоящее время я хочу оставить небольшой фрагмент, который помог мне создать очень приличный результат, который выглядит примерно так:

Я использую несколько TextBlock элементы внутри Canvas и наложение их, как предложил ChrisF. Удивительно, но оказалось, что это выглядит лучше, чем ожидалось, с меньшим количеством искажений, потому что мне не нужно использовать увеличенный размер шрифта.

<Canvas>
    <TextBlock Text="{StaticResource TestString}" FontSize="18"
               FontFamily="BigNoodleTitling" Canvas.Top="2" Canvas.Left="2" />
    <TextBlock Text="{StaticResource TestString}" FontSize="18"
               FontFamily="BigNoodleTitling" Canvas.Top="2" Canvas.Left="4" />
    <TextBlock Text="{StaticResource TestString}" FontSize="18"
               FontFamily="BigNoodleTitling" Canvas.Top="4" Canvas.Left="2" />
    <TextBlock Text="{StaticResource TestString}" FontSize="18"
               FontFamily="BigNoodleTitling" Canvas.Top="4" Canvas.Left="4" />
    <TextBlock Text="{StaticResource TestString}" FontSize="18"
               FontFamily="BigNoodleTitling" Canvas.Top="3" Canvas.Left="3"
               Foreground="#de5f5f" />
</Canvas>

Я все еще заинтересован в альтернативных решениях!

Другие вопросы по тегам