我的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等)应用样式。
我该怎么做?
答案 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中编辑鼠标悬停状态。
这里有很多,但这应该让你开始走上正确的道路。