2009-05-01 7 views
5

नीचे एक्सएएमएल काम नहीं करता है (टेक्स्टिंग में बदलते समय पाठ नहीं बदलता है):टेक्स्टब्लॉक टेक्स्ट प्रॉपर्टी स्टाइल ट्रिगर के माध्यम से सेट नहीं की जा सकती है यदि गैर-खाली - क्यों?

<Window.Resources> 
    <Style TargetType="TextBlock"> 
     <Style.Triggers> 
      <Trigger Property="IsMouseOver" Value="true"> 
       <Setter Property="Text" Value="hover"/> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</Window.Resources> 
<Grid> 
    <TextBlock Text="original"/> 
</Grid> 

लेकिन, यदि टेक्स्ट विशेषता अनुपलब्ध है:

 <Grid> 
    <TextBlock/> 
</Grid> 

पाठ माउस पर बदल जाता है। किसी के पीछे सिद्धांत जानता है?

उत्तर

6

यह एक DependencyProperty पूर्वता मुद्दा है, जब आप वास्तव में के रूप में गुण सेट है:

<TextBlock Text="original"/> 

कि ट्रिगर में सेट मूल्य पर पूर्वता लेता है।

देख

http://msdn.microsoft.com/en-us/library/ms743230.aspx

+0

यह एक शानदार लिंक है। मैंने जो कहा है उसकी _lot_ बताती है मेरी बग्स और बस अलग-अलग दृष्टिकोण ले गए। –

+0

फिर भी वे इसे डिज़ाइन कर सकते हैं कि स्टाइल सेटर्स स्थानीय मूल्यों से प्रेमी हैं, शैली _triggers_ अधिक होगी ... क्योंकि दोनों एनिमेशन और डेटा ट्रिगर्स स्थानीय मान को आसानी से ओवरराइड कर सकते हैं, स्टाइल ट्रिगर गतिशील होने के साथ-साथ उस श्रेणी में भी आ सकता है। –

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