2011-02-04 27 views
0

當我創建自定義的WPF控件時,通常保留通常的默認外觀和效果。例如,這包括按鈕上的默認藍色懸停。如何保留我的自定義WPF的默認懸停效果RepeatButton

我已經創建了一個可滾動選項卡的自定義TabControl。無論出於何種原因,每側的RepeatButton(即左右滾動箭頭)都沒有懸停效果。我發現了幾個教程,告訴我如何爲控件創建自己的懸停效果,但不幸的是這些示例只是用不同的顏色替換背景(而且這看起來與使透明藍色淡入淡出而同時保持底層背景的動畫完全不同)。我怎樣才能獲得這種懸停效果?有什麼方法可以訪問標準懸停效果(可能是故事板?)?

編輯:我剛剛發現,如果我刪除了我放在RepeatButton上的自定義樣式,我會得到默認的懸停效果。也許現在的問題是 - 我是如何消除懸停效應的,我怎麼輕微修改外觀而不破壞它呢?下面是一個borked懸停效果 -

     <Style x:Key="TabScrollerRepeatButtonStyle" TargetType="{x:Type RepeatButton}"> 
         <Setter Property="Template"> 
          <Setter.Value> 
           <ControlTemplate> 
            <Border x:Name="testTest" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1" Margin="1,0" CornerRadius="2"> 
             <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" Content="{TemplateBinding ContentControl.Content}"/> 
            </Border> 
           </ControlTemplate> 
          </Setter.Value> 
         </Setter> 

回答

2

攻擊的問題,像這些是火起來Expression Blend和你要複製的風格控制做「修改模板」最好的辦法樣式。這樣做的滾動條會告訴你到底是什麼樣的默認樣式,然後你可以複製相關位到你的自定義控件樣式。

+0

作爲一個OO程序員的思考..是否有一些常用的方法來只覆蓋那些你想修改的屬性?或者我會被迫取代整個風格(複製整個風格,只修改我想改變的東西)? – guesser 2011-02-04 21:25:07