2012-09-25 11 views
5

मुझे बनाए गए ToggleButton के लिए ControlTemplate के साथ कोई समस्या आई।माउसओवर राज्य ट्रिगर होने के बाद चेक किए गए राज्य के रंग का रंग क्यों नहीं चल रहा है?

जब बटन Checked, एक ColorAnimation शुरू हो रहा है और नियंत्रण की पृष्ठभूमि का रंग बदल जाता है। हालांकि, यदि उपयोगकर्ता MouseOver स्थिति में प्रवेश करता है, तो एक और एनीमेशन ट्रिगर होता है जो बटन की पृष्ठभूमि को भी प्रभावित करता है।

जब माउस अब MouseOver स्थिति में नहीं है, तो नियंत्रण उस रंग पर वापस नहीं आता है जब यह Checked स्थिति में होना चाहिए। मुझे यकीन नहीं है कि MouseOver स्थिति ट्रिगर होने पर यह क्यों नहीं टिकता है।

मेरी ControlTemplate की VisualStateManager भाग इस तरह sorta दिखता है:

<VisualStateManger.VisualStateGroups> 
    <VisualStateGroup x:Name="CommonStates"> 
     <VisualState x:Name="Normal"></VisualState> 
     <VisualState x:Name="MouseOver"> 
      <Storyboard> 
       <ColorAnimation Storyboard.TargetName="BackgroundBorder" 
        Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)" 
        To="Gold" Duration="0:0:0.3" /> 
      </Storyboard> 
     </VisualState> 
    </VisualStateGroup> 
    <VisualStateGroup x:Name="CheckedStates"> 
     <VisualState x:Name="Checked"> 
      <Storyboard> 
       <ColorAnimation Storyboard.TargetName="BackgroundBorder" 
        Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)" 
        To="PaleGoldenrod" Duration="0:0:0.3" /> 
      </Storyboard> 
     </VisualState> 
    </VisualStateGroup> 
</VisualStateManager.VisualStateGroups> 
+1

मुझे लगता है कि अलग-अलग समूहों से संबंधित दृश्य राज्यों में समान लक्ष्य गुणों को एनिमेट करना एक अच्छा विचार नहीं है। समाधान में से एक अलग-अलग समूह में दृश्यमान राज्यों के गुणों/तत्वों के विभिन्न सेट पर चलने वाला होगा। –

+0

मैं सोच रहा था क्योंकि मैं वही संपत्ति एनिमेट कर रहा हूं, यह समस्या का स्रोत था। –

उत्तर

2

मुद्दा मैं एक Grid कि Border संलग्न बनाने शामिल होने गया था के लिए मेरे वैकल्पिक हल।

CommonStates के लिए मैंने Border.Background में एनीमेशन परिवर्तन किए और CheckedStates के लिए मैंने Grid.Background में एनीमेशन परिवर्तन किए।

यह दृश्य प्रभाव प्राप्त करता है जिसे मैं ढूंढ रहा था।

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