windows phone7 button控件背景问题

 

在windows phone7平台下做连连看时,为button控件添加背景图片时遇到了三个问题:

1.点击按钮,按钮会变白;

2.IsEnable设置为false时,背景图片不再显示;

3.button click事件不能改变自己的背景色,前景色,背景图片;

通过下面博客里面讲述的以上问题都得以解决了。这里希望有遇到相同情况的朋友们可以解决自己的情况。

 

 

以下内容来自暗影吉他手的博客,原文地址:http://www.cnblogs.com/lhxarcher/archive/2011/01/08/1930660.html

 

关于在WP7中通过代码改变Button背景色的问题的分析与解决方案

在项目开发中尝试每按一次Button就循环改变它的Background:

private void btn1_Click(object sender, RoutedEventArgs e)
{
    btn1.Background = new SolidColorBrush(Colors.Blue);
}

却发现按钮的背景色完全没变!开始以为以为是微软的bug,但是想不出来更好的方法,问题也无法解决。

经过研究和探索,基本锁定了问题源,下面是我的分析和结论。

首先我们观察Button的ControlTemplate(xaml代码来自Microsoft Expression Blend 4):

代码

注意到在Pressed的VisualState中,名为ButtonBackground的Border的Background被设定为了PhoneForegroundBrush。根据msdn提供的依赖属性优先级的说明(http://msdn.microsoft.com/en-us/library/cc265148(v=VS.95).aspx),storyboard设置的值应该会覆盖掉由代码设置的本地值。 

于是解决方案很简单,把ControlTemplate中的

   
   
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="ButtonBackground">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneForegroundBrush}"/>
</ObjectAnimationUsingKeyFrames>

去掉即可,不让VisualState影响Button的Background。这样一来想怎么改就可以怎么改了!

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值