2011-06-07 21 views
5

से ट्रिगर्स युक्त WPF शैलियों को उत्पन्न करना मुझे सी # कोड से ट्रिगर्स युक्त WPF शैलियों को उत्पन्न करने में कुछ परेशानी थी। यहां डब्ल्यूपीएफ कोड है जो मैं trough सी # उत्पन्न करना चाहता हूं।सी # कोड

<Style.Triggers> 
    <Trigger Property="IsMouseOver" Value="true"> 
     <Setter Property="BitmapEffect"> 
      <Setter.Value> 
       <OuterGlowBitmapEffect GlowColor="Gold" GlowSize="10" /> 
      </Setter.Value> 
     </Setter> 
    </Trigger> 
</Style.Triggers> 

मैं alredy इस तरह उत्पन्न करने की कोशिश:

Style style = new Style(); 
Trigger trigger = new Trigger(); 
Setter setter = new Setter(); 

style.Triggers.Add(trigger); 
trigger.Property = (DependencyProperty.Register("IsMouseOver", Type.GetType("IsMouseOver"), Type.GetType("Canvas"))); //Line not tested 
//trigger.Setters.Add(new Setter(new BitmapEffect()); //Line not working 

लेकिन मैं समझ नहीं सकता कैसे पहले से

धन्यवाद आप एक BitmapEffect साथ trigger.Setters उपयोग करने के लिए!

उत्तर

7

सीधा अनुवाद होगा:

OuterGlowBitmapEffect effect = new OuterGlowBitmapEffect(); 
effect.GlowColor = Colors.Gold; 
effect.GlowSize = 10; 

Setter setter = new Setter(); 
setter.Property = UIElement.BitmapEffectProperty; 
setter.Value = effect; 

Trigger trigger = new Trigger(); 
trigger.Property = UIElement.IsMouseOverProperty; 
trigger.Value = true; 
trigger.Setters.Add(setter); 

Style style = new Style(); 
style.Triggers.Add(trigger); 

यह करने के लिए साफ किया जा सकता:

var effect = new OuterGlowBitmapEffect() { 
    GlowColor = Colors.Gold, 
    GlowSize = 10, 
}; 

var setter = new Setter() { 
    Property = UIElement.BitmapEffectProperty, 
    Value = effect, 
}; 

var trigger = new Trigger() { 
    Property = UIElement.IsMouseOverProperty, 
    Value = true, 
    Setters = { setter }, 
}; 

var style = new Style() { 
    Triggers = { trigger }, 
}; 

लेकिन यह अपने कोडिंग शैली पर आधारित है।