2009-11-17 8 views
21

मेरे पास ButtonControlTemplate है और मैं Trigger का उपयोग करके Border पर DropShadowEffect को संशोधित करने का प्रयास कर रहा हूं। यहां मेरा एक्सएमएल है:मैं एक ControlTemplate में एक ट्रिगर के माध्यम से DropShadowEffect की संपत्ति कैसे सेट कर सकता हूं?

<Button.Template> 
    <ControlTemplate TargetType="Button"> 
    <Border x:Name="ButtonBorder" Margin="10" CornerRadius="5" Background="Gray"> 
     <Border.Effect> 
     <DropShadowEffect ShadowDepth="5" x:Name="BorderEffect" /> 
     </Border.Effect> 
     <ContentPresenter HorizontalAlignment="Center" /> 
    </Border> 
    <ControlTemplate.Triggers> 
     <Trigger Property="Button.IsMouseOver" Value="True"> 
     <Setter Property="Background" TargetName="ButtonBorder" Value="LightGray" /> 
     </Trigger> 
     <Trigger Property="Button.IsPressed" Value="True"> 
     <Setter Property="Margin" TargetName="ButtonBorder" Value="13,13,7,7" /> 
     <!-- this is where I get the error --> 
     <Setter Property="ShadowDepth" TargetName="BorderEffect" Value="2" /> 
     </Trigger> 
    </ControlTemplate.Triggers> 
    </ControlTemplate> 
</Button.Template> 

मुझे यह बताते हुए त्रुटि मिलती है कि सीमावर्ती नहीं पाया जा सकता है।
मैं भी कोशिश की है:

<Setter Property="Effect.ShadowDepth" TargetName="ButtonBorder" Value="2" /> 

लेकिन मैं यह भी मुझे बता कि संपत्ति ShadowDepth

(क्योंकि यह DropShadowEffect के बजाय आधार वर्ग उपयोग कर रहा है) प्रकार Effect की वस्तु पर नहीं पाया जा सका कोई त्रुटि मिलती है

मैं इसे कैसे हल कर सकता हूं?

उत्तर

25

आप setter.value

<Setter Property="Margin" TargetName="ButtonBorder" Value="13,13,7,7" /> 
    <Setter Property="Effect" TargetName="ButtonBorder" > 
     <Setter.Value> 
     <DropShadowEffect ShadowDepth="2" /> 
     </Setter.Value> 
    </Setter> 
    </Trigger> 
+0

हाँ में एक पूरे के रूप प्रभाव सेट कर सकते हैं, कि क्या मैं का उपयोग कर समाप्त हो गया है, लेकिन मैं जो एक तरह से सिर्फ संपत्ति की आवश्यकता को संशोधित करने के वहाँ था ... धन्यवाद :-) –

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

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