Silverlight:改变国家风格

时间:2011-05-18 22:41:40

标签: silverlight xaml silverlight-4.0

我的App.xaml看起来像这样:

<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
         x:Class="mySilverlightApp.App"
         >
<Application.Resources>
    <Style x:Name="ComboBoxStyle" TargetType="ComboBox">
        <Setter Property="FontFamily"  Value="Calibri.ttf#Calibri"></Setter>
    </Style>
</Application.Resources>

正如您所看到的,我正在尝试将<Setter>标签的自定义样式应用于我的应用中的ComboBoxes。但我想为ComboBox的不同状态(MouseOver等)应用样式。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

要实现此目的,您必须以隐式样式创建控件模板。如下所示:

<Style x:Name="ComboBoxStyle" TargetType="ComboBox">
    <Setter Property="Template">
         <Setter.Value>
              <ControlTemplate TargetType="ComboBox">
                  ....
              </ControlTemplate>
         </Setter.Value>
    </Setter>
</Style>

您可以参考此链接获取组合框的默认样式/控制模板:http://msdn.microsoft.com/en-us/library/dd334408(v=vs.95).aspx

开始重新模板控制的好方法是使用Blend。您可以右键单击已拖动到画板上的控件,然后使用“编辑模板 - >编辑副本”命令。这将为您创建一个默认的controltemplate(与我提供的链接中显示的相同)。

从那里,您可以使用States选项卡在Blend中编辑鼠标悬停状态。

这里有很多,但这应该让你开始走上正确的道路。