StrikeThrough对TextBlock的影响

时间:2012-10-07 19:51:36

标签: c# .net xaml microsoft-metro windows-store-apps

在Windows应用商店应用中,有没有办法对TextBlock的内容应用StrikeThrough效果?如果没有,RichTextBlock或任何类似的控件都可以。它是通过XAML还是通过编程方式(C#)无关紧要,但我更喜欢通过XAML,因此它会在设计器中显示。

我在微软的文档中发现了这个,但我不知道如何使用它: http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.text.itextcharacterformat.strikethrough.aspx

2 个答案:

答案 0 :(得分:14)

Windows应用商店应用拥有自己的控件名称空间(System.Ui.Xaml.Controls)。您将看到TextBlock for Windows Store应用程序没有TextDecoration属性:TextBlock documentation

“完整”.Net 4.5 TextBlock确实有TextDecoration属性:.Net 4.5 WPF TextBlock Documentation

你可以像这样“hacky”这样做:

    <Grid Height="30">
        <TextBlock Text="This is a test" FontSize="22" Height="34" HorizontalAlignment="Center" Foreground="White"   />
        <Line Stretch="Fill" Stroke="white" StrokeThickness="2 " X1="1" Width="120" VerticalAlignment="Center"  HorizontalAlignment="Center"   />
    </Grid>

答案 1 :(得分:3)

似乎毕竟不可能:

  

“我们无法在最终版本中包含TextDecoration类   用于Windows 8的XAML框架。这意味着您将   不能使用删除线功能,但你仍然会   能够通过下划线类强调文本。“

http://social.msdn.microsoft.com/Forums/en-CA/winappswithcsharp/thread/cba0c363-60da-4e4e-9fc1-93f7c3658aff

然而,微软正在研究这个问题:

  

“这是Windows 8中XAML文本故事的一个已知限制   开发者预览。从好的方面来看,这是一个有计划的区域   以后很快就会发生改善,我们希望解决这个问题   问题。“

http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/d5362fe2-48f6-448d-92ae-25216345c46d