我正在尝试为WP7创建一个自定义删除线(因为它不支持SL4 / WPF strikethough)。
我通过创建一个2px高的矩形,并从底部放置33%(默认为Segeo WP字体删除线)来完成此操作。
然而,这是一个看起来像不透明蒙版的奇怪问题。
删除线正在对文本块进行一些屏蔽,这非常有意。所以我正在寻找关于如何解决这个问题的任何想法。
XAML的片段:
<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},但唉,这根本没有效果。
答案 0 :(得分:2)
我不确定这是一个OpacityMask问题 - 而是我认为它是两组PhoneDisabledColor
画笔组合在一起。
从资源看,PhoneDisabledColor
的白色不透明度为40%
<Color x:Key="PhoneDisabledColor">#66FFFFFF</Color>
因此,当您将具有此不透明度的两个对象放在彼此之上时,您将获得您所见过的绘图效果 - 不透明度超过40%的部分。
此处列出了删除线的解决方案 - http://forums.silverlight.net/forums/t/19749.aspx
编辑/更新 - 看过那个解决方案后,我认为它可能会显示您遇到的同样问题。