2011-05-18 67 views
0

我的App.xaml看起来是这样的:的Silverlight:对于状态改变风格

<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>标签应用自定义样式,以组合框在我的应用程序。但我想对ComboBox的不同状态(MouseOver等)应用样式。

我该怎么做?

回答

1

要做到这一点,您必须创建一个隐式样式的控件模板。像下面这样:

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

您可以参考这个链接的默认样式/ CONTROLTEMPLATES组合框:http://msdn.microsoft.com/en-us/library/dd334408(v=vs.95).aspx

一个伟大的方式开始重新模板控件使用混合。您可以右键单击已拖动到美工板上的控件,然后使用“编辑模板 - >编辑复制”命令。这将为您创建一个默认的控件模板(与我提供的链接中显示的相同)。

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

这里有很多事情要做,但这应该让你开始正确的道路。