2011-05-18 47 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中的鼠標懸停狀態。

這裏有很多事情要做,但這應該讓你開始正確的道路。