2011-01-09 21 views
5

मेरे उपयोगकर्ता नियंत्रण (सत्य/गलत) की IsEnabled संपत्ति के आधार पर, मैं चाहता हूं कि इसके अंदर के नियंत्रण अलग-अलग रंग हों। मैं एक्सएएमएल के 'जादू' के साथ ऐसा करना चाहता हूं।बाल नियंत्रण के लिए UserControl प्रॉपर्टी ट्रिगर

<UserControl.Resources> 
    <Style x:Key="EnableDependent" TargetType="{x:Type Shape}"> 
     <Style.Triggers> 
      <Trigger Property="{Binding Path=IsEnabled, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" Value="True"> 
       <Setter Property="Stroke" Value="White" /> 
      </Trigger> 
      <Trigger Property="{Binding Path=IsEnabled, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" Value="False"> 
       <Setter Property="Stroke" Value="Black" /> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</UserControl.Resources> 

शैली एक ViewBox जहां एक पथ तैयार की है में लागू किया जाता है:

<Viewbox Grid.Column="3" Width="18" Margin="5,5,2,5" MouseEnter="Dispatch_MouseEnter" DockPanel.Dock="Right" Stretch="Uniform"> 
     <Path Data="M0,1 L4,1 M2,0 L4,1 L2,2" Stretch="Fill" StrokeThickness="3" Width="12" Height="12" Style="{StaticResource EnableDependent}" /> 
    </Viewbox> 

मैं एक क्रम अपवाद है कि एक बाध्यकारी 'संपत्ति' एक ट्रिगर की संपत्ति में सेट नहीं किया जा सकता हो।

तो ऐसा करने का तरीका क्या है?

उत्तर

17

एक सामान्य Trigger के बजाय DataTrigger का उपयोग करें जो आंतरिक संपत्ति परिवर्तनों के लिए है, इसमें Binding -Property है जहां आप ऐसा कर सकते हैं।

<Style x:Key="EnableDependent" TargetType="{x:Type Shape}"> 
    <Style.Triggers> 
     <DataTrigger Binding="{Binding Path=IsEnabled, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" Value="True"> 
      <Setter Property="Stroke" Value="White" /> 
     </DataTrigger> 
     <DataTrigger Binding="{Binding Path=IsEnabled, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" Value="False"> 
      <Setter Property="Stroke" Value="Black" /> 
     </DataTrigger> 
    </Style.Triggers> 
</Style> 
+2

मुझे आश्चर्य है कि यह क्यों डाउनवॉट किया गया था .... –

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