none
关于Silverlight 样式动态切换的问题 RRS feed

  • 问题

  • 我定义了5个样式文件,分别是 Red.xaml,Blue.xaml,Green.xaml,Desktop.xaml,Purple.xaml,这5个样式文件里的样式 有的带 Key值,有的不带Key值,比如

    <style TargetType="Button" x:Key="RadButtonBackground">

        <Setter Property="Background" Value="Blue"></Setter>

    </Style>

    <Style TargetType="Button">

    </Style>

    不带Key值的样式,切换完样式文件以后,就可以自动的现实出对应的颜色来,但是带Key值的样式却不能显示对应的颜色,请问 这个问题如何解决呢

    2011年12月9日 8:16

答案

  • 你好,

    首先你需要了解隐式样式,请从以下连接中找到备注部分的隐式样式查看:

    http://msdn.microsoft.com/zh-cn/library/ms603146%28v=VS.95%29.aspx

     

    其次,如果你想换样式,不需要以文件为单位来更换,只需要在后台代码设置一下Style属性即可。

    假设你的所有样式都在MainPage文件里:

        <UserControl.Resources>
               <style TargetType="Button" x:Key="BlueBackground">
     
                         <Setter Property="Background" Value="Blue"></Setter>
     
               </Style>
     
             <Style TargetType="Button">
     
              </Style>
        </UserControl.Resources>

    这样你就可以在后台代码时这样设置:


         YourButton.Style = this.Resources["BlueBackground"] as Style;


    Daoping Liu - MSFT
    2011年12月12日 4:46
    版主