Windows Phone文本概述
本文关键字:文本 Phone Windows | 更新日期: 2023-09-27 18:22:02
是否可以在windows phone 8中为文本勾勒轮廓,例如我有红色文本,但我希望轮廓为黑色?
我应该在C#的xaml中这样做吗?如果可能的话,怎么做?任何例子都将非常感谢
乙醇
在这里您可以看到它是如何完成的:http://blog.mrlacey.co.uk/2010/06/silverlight-effects-and-windows-phone-7.html
它已经不起作用了。由于性能问题,Microsoft将其删除。
应用程序从使用这些效果中获得的性能打击给系统带来了太大的压力,我们决定,如果我们不能提供性能良好的功能,我们将在可能的时候禁用。
唯一的可能性是创建2个文本块并更改字体大小、渲染转移、字体重量,。。。
<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>
由于两个具有不同字体宽度的TextBlock对处理大文本(只比简单的"Hello"长)没有帮助,因为较粗的文本将领先于较细的文本,我建议您使用4个左上角、右上角等偏移1的TextBlock,并将"不透明度"设置为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>
但请记住,这是一个相当"沉重"的解决方案,仍然不如真正的大纲好。