2010-10-19 17 views
13

मुझे एक ट्रिगर बनाने की आवश्यकता है, जो माउस एन्टर होने पर सीमा पृष्ठभूमि संपत्ति को बदल देगा। मैंने फ़ॉलो किया:ट्रिगर में WPF सेट सीमा पृष्ठभूमि

<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> 

लेकिन यह काम नहीं करता है। धन्यवाद।

उत्तर

25

सामान्य गलती। आपने सीमावर्ती बैकग्राउंड संपत्ति को सीधे सेट कर दिया है जो हमेशा आपके ट्रिगर द्वारा निर्धारित मान को ओवरराइड करेगा। इसके बजाय (। स्थानीय स्तर पर मान सेट have a very high precedence, शैली एक बहुत कम पूर्वता है)

, तो आप ऐसा तरह शैली में अपने "सामान्य" पृष्ठभूमि बढ़ना चाहिए:

<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

वाह! बहुत बहुत धन्यवाद :) –

+0

कोई समस्या नहीं, मदद करने में खुशी हुई। यदि इस उत्तर ने आपकी समस्या हल की है तो कृपया इसे स्वीकार के रूप में चिह्नित करें ताकि वह खुले प्रश्नों की सूची में न रहे। – Josh

+0

ओह, क्षमा करें :) फिर से धन्यवाद! –

संबंधित मुद्दे