Silverlight4按钮的文字变色

经过N次的折腾后,终于解决了Silverlight4的按钮文字变色的问题.
利用MExpressionBlend创建Button的副本,生成Style样式代码,修改如下:
 

<UserControl.Resources>
<Style x:Key="LoginBtnStyle" TargetType="Button">
...
<Border x:Name="Background" 
	BorderBrush="{TemplateBinding BorderBrush}" 
	BorderThickness="{TemplateBinding BorderThickness}" 
	Background="White" 
	CornerRadius="3">
	<Grid Background="{TemplateBinding Background}" Margin="1">
		<Border x:Name="BackgroundAnimation" Background="#FF448DCA" Opacity="0"/>
		<Rectangle x:Name="BackgroundGradient">
			<Rectangle.Fill>
				<LinearGradientBrush EndPoint=".7,1" StartPoint=".7,0">
					<GradientStop Color="#FFFFFFFF" Offset="0"/>
					<GradientStop Color="#F9FFFFFF" Offset="0.375"/>
					<GradientStop Color="#E5FFFFFF" Offset="0.625"/>
					<GradientStop Color="#C6FFFFFF" Offset="1"/>
				</LinearGradientBrush>
			</Rectangle.Fill>
		</Rectangle>
	</Grid>
</Border>
<ContentPresenter x:Name="contentPresenter" 
	ContentTemplate="{TemplateBinding ContentTemplate}" 
	Content="{TemplateBinding Content}" 
	HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
	VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
	Margin="{TemplateBinding Padding}" />
...
</Style>


把<ContentPresenter ... /> 标签改为<TextBlock ..../>

<TextBlock x:Name="btnName" 
	Text="{TemplateBinding Content}"									
	...>


添加动画状态,例如MouseOver

<VisualState x:Name="MouseOver">
	<Storyboard>
		<ColorAnimation Duration="0" 
			To="#FF00FF00" 
			Storyboard.TargetProperty="(TextBlock.Foreground).(SolidColorBrush.Color)" 
			Storyboard.TargetName="btnName" />
		<DoubleAnimation Duration="0"
			To="20" 
			Storyboard.TargetProperty="(TextBlock.FontSize)"
			Storyboard.TargetName="btnName" />
		<DoubleAnimation ... />
	</Storyboard>
</VisualState>


生成项目,运行后,当鼠标移上按钮时,文字颜色,字体大小也改变。
注:暂不清楚<ContentPresenter ... />换成<TextBlock ... />对此按钮会带来怎么样的限制,有待验证。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值