2010-10-19 10 views
13

MouseEnter oluştuğunda, Border background özelliğini değiştirecek bir tetikleyici oluşturmam gerekiyor. Takip ettim:WPF tetiklemede kenarlık arka planı ayarlandı

<Border Width="20" Height="30" Focusable="True"> 
     <Border.Background> 
      <LinearGradientBrush> 
       <LinearGradientBrush.GradientStops> 
        <GradientStop Color="Aquamarine" Offset="0"/> 
       </LinearGradientBrush.GradientStops> 
      </LinearGradientBrush> 
     </Border.Background> 
     <Border.Style> 
      <Style TargetType="{x:Type Border}"> 
       <Style.Triggers> 

        <Trigger Property="IsMouseOver" Value="True"> 
         <Setter Property="Background"> 
          <Setter.Value> 
           <LinearGradientBrush> 
            <LinearGradientBrush.GradientStops> 
             <GradientStop Color="Aquamarine" Offset="0"/> 
             <GradientStop Color="Beige" Offset="0.2"/> 
             <GradientStop Color="Firebrick" Offset="0.5"/> 
             <GradientStop Color="DarkMagenta" Offset="0.9"/> 
            </LinearGradientBrush.GradientStops> 
           </LinearGradientBrush> 
          </Setter.Value> 
         </Setter> 
        </Trigger> 
       </Style.Triggers> 
      </Style> 
     </Border.Style> 
    </Border> 

ama çalışmıyor. Teşekkürler.

cevap

25

Yaygın bir hata. Doğrudan tetikleyiciniz tarafından ayarlanan değeri geçersiz kılan Border.Background özelliğini doğrudan ayarladınız. (. Yerel olarak ayarlanmış değerler have a very high precedence, stil oldukça düşük önceliğe sahiptir)

Bunun yerine, şöyle Stil içine "normal" arka plan hareket etmeliyiz:

<Border> 
    <Border.Style> 
     <Style TargetType="Border"> 
      <Setter Property="Background"> 
       <Setter.Value> 
        <LinearGradientBrush> 
         <LinearGradientBrush.GradientStops> 
          <GradientStop Color="Aquamarine" Offset="0"/> 
         </LinearGradientBrush.GradientStops> 
        </LinearGradientBrush> 
       </Setter.Value> 
      </Setter> 
      <Style.Triggers> 
       <!-- the trigger you showed --> 
      </Style.Triggers> 
     </Style> 
    </Border.Style> 
</Border> 
+0

Vay! Çok teşekkürler :) –

+0

Sorun değil, yardım etmekten memnunum. Bu cevap sorununuzu çözdüyse, lütfen kabul ettiğiniz şekilde işaretleyin, böylece açık sorular listesinde kalmaz. – Josh

+0

oh, üzgünüm :) Tekrar teşekkürler! –