[Windows Phone] 另类方法解决ScrollViewer设置透明度后文字模糊问题

最近在开发一些Windows Phone 7的应用,遇到了一些问题,比较奇怪的当属昨天遇到的了。

当我在ScrollViewer中放入一个TextBlock控件绑定文字,并设置ScrollViewer的透明度为非1.0(我设置0.7,比较好看),这时如果TextBlock中文字超出ScrollViewer的高度,也就是说可以上下滑动来看到更多文字,就会出现文字模糊的情况发生,如下图:

1231231231d

请教了多位朋友都说这可能是个Bug,于是Google了很久也没能找到解决方法,于是灵机一动用来一个另类的方法来解决,这个方法就是使用一个透明度为70%的1像素高1像素宽的PNG图片(下面代码中DesBackground.png既是)作为文字所在容器的背景,代码也很简单,如下,背景图我就不放了,自己用PS建一个很简单:

 

<StackPanel Margin="0,-20,0,80"> 
    <StackPanel.Background> 
        <ImageBrush ImageSource="Images\Countries\DesBackground.png"></ImageBrush> 
    </StackPanel.Background> 
    <ScrollViewer Height="553" VerticalAlignment="Top" Margin="10,10,10,10"> 
        <TextBlock x:Name="tbHistory" TextWrapping="Wrap" Style="{StaticResource PhoneTextNormalStyle}"></TextBlock> 
    </ScrollViewer> 
</StackPanel>

 

效果如下:

11111111

是不是很清晰?而且不影响美观!

这个方法对程序性能和存储的影响可忽略不计,个人认为还是比较好的,希望能帮助有需要的朋友!



posted @ 2011-09-26 17:28 WilsonWu 阅读(983) 评论(7) 编辑 收藏

 回复 引用 查看   
#1楼 2011-09-26 17:45 坤坤      
呵呵,非常开心看到你把这个棘手的问题解决了哦。这个方案简便的。
 回复 引用 查看   
#2楼[楼主] 2011-09-26 17:53 WilsonWu      
引用坤坤:呵呵,非常开心看到你把这个棘手的问题解决了哦。这个方案简便的。

呵呵,这也是被逼的实在没招了想出来的。

 回复 引用 查看   
#3楼 2011-09-26 17:57 allanxyq      
分类应该放在wp7里面
 回复 引用 查看   
#4楼[楼主] 2011-09-26 18:20 WilsonWu      
引用allanxyq:分类应该放在wp7里面

多谢提醒,已经修改分类。

 回复 引用 查看   
#5楼 2011-09-26 22:22 阿干@NET      
为何不
<StackPanel.Background>
<SolidColorBrush Color="Black" Opacity="0.7"/>
</StackPanel.Background>

 回复 引用 查看   
#6楼[楼主] 2011-09-26 22:52 WilsonWu      
引用阿干@NET:
为何不
<StackPanel.Background>
<SolidColorBrush Color="Black" Opacity="0.7"/>
</StackPanel.Background>

真没试过这样,你可以看看文字是否模糊,我觉得应该会模糊。

 回复 引用 查看   
#7楼 2011-09-27 11:42 Lucky_cheung      
有时候还真的是灵机一动啊,呵呵