1

WP7のカスタム取り消し線を作成しようとしています(SL4 / WPF取り消し線をサポートしていないため)。

これを行うには、高さ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}に設定しようとしましたが、残念ながら、これはまったく効果がありません。

4

1 に答える 1

2

これがOpacityMaskの問題かどうかはわかりませんが、代わりに2セットのPhoneDisabledColorブラシが組み合わされていると思います。

PhoneDisabledColorリソースから、不透明度40%が白のように見えます

 <Color x:Key="PhoneDisabledColor">#66FFFFFF</Color>

したがって、この不透明度の2つのオブジェクトを重ねて配置すると、これまでに見た描画効果が得られます。不透明度が40%を超えるセクションです。

ここにリストされている取り消し線の解決策があります-http://forums.silverlight.net/forums/t/19749.aspx

編集/更新-その解決策を見たので、あなたが見たのと同じ問題を示すかもしれないと思います。


WindowsPhone7のStrikeoutテキストで見つかりました

于 2011-04-02T23:09:37.673 に答える