C# 禁用文本块上的不透明度遮罩
我正在尝试为WP7创建一个自定义删除线(因为它不支持SL4/WPF删除线) 为此,我创建了一个2倍高的矩形,并将其放置在距底部33%的位置(默认为Segeo WP字体删除线) 然而,这是一个相当奇怪的问题,它看起来像一个不透明遮罩 删除线是在文本块上做一些掩蔽,这是非常有意的。所以我想知道如何解决这个问题 XAML的代码片段:C# 禁用文本块上的不透明度遮罩,c#,wpf,silverlight,windows-phone,C#,Wpf,Silverlight,Windows Phone,我正在尝试为WP7创建一个自定义删除线(因为它不支持SL4/WPF删除线) 为此,我创建了一个2倍高的矩形,并将其放置在距底部33%的位置(默认为Segeo WP字体删除线) 然而,这是一个相当奇怪的问题,它看起来像一个不透明遮罩 删除线是在文本块上做一些掩蔽,这是非常有意的。所以我想知道如何解决这个问题 XAML的代码片段: <TextBlock x:Name="ContentContainer" Text="{TemplateBinding Content}"
<TextBlock x:Name="ContentContainer"
Text="{TemplateBinding Content}"
Grid.Column="0"
Foreground="{TemplateBinding Foreground}"
HorizontalAlignment="Left"
Margin="0,0,0,0"
OpacityMask="{x:Null}"
Padding="{TemplateBinding Padding}"
FontSize="{StaticResource PhoneFontSizeLarge}" />
<Rectangle x:Name="CheckBorder"
Fill="{StaticResource PhoneDisabledBrush}"
Margin="0,26,0,15"
OpacityMask="{x:Null}"
Width="{Binding Width, ElementName=ContentContainer}"
Height="2"/>
正如您所看到的,我已经尝试将OpacityMask设置为{x:Null},但遗憾的是,这根本没有效果。我不确定这是否是一个OpacityMask问题-相反,我认为这是两组
PhoneDisabledColor
笔刷组合在一起的结果
从参考资料中可以看出,PhoneDisabledColor
的不透明度为40%白色
<Color x:Key="PhoneDisabledColor">#66FFFFFF</Color>
#66FFFFFF
因此,当您将两个具有此不透明度的对象放置在彼此的顶部时,您将获得您所看到的绘图效果-不透明度大于40%的部分
这里列出了删除线的解决方案-
编辑/更新-查看该解决方案后,我认为它可能会显示与您所看到的相同的问题
通过发现,我尝试了非手机颜色,这确实是因为手机颜色具有透明度。另一方面,您使用UserControls链接中的解决方案对于WP7来说是一个非常糟糕的解决方案,因为UserControls的性能非常糟糕,因为它们无法虚拟化。但是,为抬头的人干杯。