2

是否可以在 windows phone 8 中勾勒文本,例如我有红色文本,但我希望轮廓为黑色?

我应该在 C# 的 xaml 中执行此操作,如果可能的话,如何执行?任何例子将不胜感激

谢谢

4

2 回答 2

2

在这里你可以看到它是如何完成的:http: //blog.mrlacey.co.uk/2010/06/silverlight-effects-and-windows-phone-7.html

它不再工作了。由于性能问题,微软将其删除。

应用程序因使用这些效果而遭受的性能损失给系统带来了太大的压力,因此决定如果我们无法提供高性能功能,我们将尽可能禁用它。

唯一的可能是创建 2 个 TextBlock 并更改 FontSize、RenderTransfor、FontWeight、...

<TextBlock Text="{Binding ElementName=BackgroundText,Path=Text}" FontSize="25" Foreground="Red" FontWeight="ExtraBold">
</TextBlock>
<TextBlock Text="Hello" Name="BackgroundText" FontSize="25" Foreground="White" FontWeight="Bold">
<TextBlock.RenderTransform>
    <TranslateTransform X="0.5" Y="0" />
</TextBlock.RenderTransform>
</TextBlock>
</TextBlock>
于 2013-07-12T11:32:18.887 回答
1

由于两个具有不同 FontWieghts 的 TextBlock 不会帮助您处理大文本(仅比简单的“Hello”长),因为更粗的文本会在细文本之前,我建议您使用 4 个 TextBlock,左上角、右上角偏移 1 个等等,并设置不透明度 = 0.5 以平滑轮廓。这里有一个例子:

        <TextBlock Grid.Row="0" Text="Outlined text" Style="{StaticResource OutlineTb}">
        <TextBlock.RenderTransform>
            <TranslateTransform X="-1" Y="1" />
        </TextBlock.RenderTransform>
    </TextBlock>
    <TextBlock Grid.Row="0" Text="Outlined text" Style="{StaticResource OutlineTb}">
        <TextBlock.RenderTransform>
            <TranslateTransform X="-1" Y="-1" />
        </TextBlock.RenderTransform>
    </TextBlock>
    <TextBlock Grid.Row="0" Text="Outlined text" Style="{StaticResource OutlineTb}">
        <TextBlock.RenderTransform>
            <TranslateTransform X="1" Y="-1" />
        </TextBlock.RenderTransform>
    </TextBlock>
    <TextBlock Grid.Row="0" Text="Outlined text" Style="{StaticResource OutlineTb}">
        <TextBlock.RenderTransform>
            <TranslateTransform X="1" Y="1" />
        </TextBlock.RenderTransform>
    </TextBlock>

    <TextBlock Grid.Row="0"
               Text="Outlined text"
               FontSize="25"
               Foreground="White"
               FontWeight="Normal">
    </TextBlock>

和风格:

    <Style TargetType="TextBlock" x:Key="OutlineTb">
        <Setter Property="FontSize" Value="25" />
        <Setter Property="Foreground" Value="Black" />
        <Setter Property="FontWeight" Value="Normal" />
        <Setter Property="Opacity" Value="0.5" />
    </Style>

但请记住,它是相当“重”的解决方案,仍然不如真正的轮廓。

于 2015-02-11T06:54:15.950 回答