Silverlight Style 自定义样式在后台代码中应用

一、应用已有的自定义样式:

拿上一章我们自定义的样式举例:

<Application xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation 
xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml 
x:Class="MyApp.App"
<Application.Resources> 
<Style x:Name="MyTextBoxStyle" TargetType="TextBlock"
<Setter Property="FontSize" Value="10"></Setter>

<Setter…></Setter>

< Setter… ></ Setter >
</ Style >  
</ Application.Resources >  
</ Application >
 

 

那么我们如何通过后台编码将这一样式应用到控件上呢?其实很简单,只需要一行代码即可:

textBlock.Style = Application.Current.Resources["MyTextBoxStyle"as Style;


上面的样式是定义在App.xml中的全局样式,如果我们需要应用定义在页面中的样式,只需要稍作调整,代码如下:

textBlock.Style = Resources["MyTextBoxStyle"] as Style;

 

二、自定义样式:

了解了如何应用在页面文件中定义的样式,朋友们大概会问到,那么我们如何在后台直接定义样式呢?

下面我们就来介绍如何在后台自定义样式。

通过在学习如何在页面中定义样式,我们了解到,Silverlight的样式包含如下结构:

<Style x:Name="MyTextBoxStyle" TargetType="TextBlock"> 
<Setter Property="FontSize" Value="10"></Setter>

</Style>

所以,很显然,我们在后台定义样式也需要用到这两个对象,Style 和 Setter,下面是一段简短的示例代码:

System.Windows.Style btnStyle =new System.Windows.Style();
btnStyle.TargetType =typeof(System.Windows.Controls.Control);
Setter setterRed =new Setter(System.Windows.Controls.Control.BackgroundProperty, new SolidColorBrush(Colors.Red));
btnStyle.Setters.Add(setterRed);
this.btnClick.Style = btnStyle;

原文地址: http://www.cnblogs.com/HighFun/archive/2012/01/27/2330223.html

 

//如果silverlight 3.0可以采用 
Uri uri = new Uri(" style1.xaml", UriKind.Relative);  
ImplicitStyleManager.SetResourceDictionaryUri(control, uri);  
ImplicitStyleManager.SetApplyMode(control, ImplicitStylesApplyMode.Auto);  
ImplicitStyleManager.Apply(control);  

//如果silverlight 4.0可以采用 
Uri uri = new Uri(" style1.xaml", UriKind.Relative);  
ResourceDictionary rd = new ResourceDictionary();  
rd.Source = new Uri("/SilverlightTheme;component/"+uri, UriKind.Relative); 
//Application.Current.Resources.MergedDictionaries.Clear();
Application.Current.Resources.MergedDictionaries.Add(rd);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值