关于C#:WPF中文本的轮廓字体效果

Outlined font effect for text in WPF

我一直在寻找一种在WPF中为某些文本创建轮廓的方法,以使其与背景之间的区别更大。我尝试模仿的原始外观如下

enter

我仍然对替代解决方案感兴趣!

  • 目前我想留下一小段代码,到目前为止,这已经帮助我创造了一个非常不错的结果,看起来像这样:

    enter

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <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>
  • 我仍然对替代解决方案感兴趣!

  • 目前我想留下一小段代码,到目前为止,这已经帮助我创造了一个非常不错的结果,看起来像这样:

    enter

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <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>
  • 我仍然对替代解决方案感兴趣!

  • 目前我想留下一小段代码,到目前为止,这已经帮助我创造了一个非常不错的结果,看起来像这样:

    enter

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <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>
  • 我仍然对替代解决方案感兴趣!

  • 目前我想留下一小段代码,到目前为止,这已经帮助我创造了一个非常不错的结果,看起来像这样:

    enter

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <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>
  • 我仍然对替代解决方案感兴趣!