2009-09-08 12 views
7

मुझे आश्चर्य है कि एक संरचना तत्व को बांधना संभव है जैसे BorderThickness.TopplatedParent की संबंधित संपत्ति पर जाएं। मैंटेम्पलेट से कैसे करें BorderTickness.Top (या नीचे या बाएं या दाएं)?

<Border Margin="0" Padding="{TemplateBinding Padding}" BorderBrush="{TemplateBinding BorderBrush}"> 
    <Border.BorderThickness> 
     <Thickness Left="0" Right="0" Top="{TemplateBinding BorderThickness.Top}" Bottom="{TemplateBinding BorderThickness.Bottom}"/> 
    </Border.BorderThickness> 
</Border> 

कारण मैं इस मैं बाएं और दाएं 0 और केवल ऊपर और नीचे बंधे होने बनना चाहते है क्या करना चाहते हैं की कोशिश की है।

अग्रिम धन्यवाद।

उत्तर

13

यह संभव नहीं है क्योंकि मोटाई एक मूल्य-प्रकार है - आप केवल निर्भरता वस्तुओं की निर्भरता गुणों पर बाइंडिंग बना सकते हैं।

आप क्या कर सकता है के रूप में सामान्य BorderThickness बाध्यकारी है:

<Border Margin="0" 
     Padding="{TemplateBinding Padding}" 
     BorderBrush="{TemplateBinding BorderBrush}" 
     BorderThickness="{TemplateBinding BorderThickness, Converter={StaticResource ThicknessConverter}}" /> 

तो एक कनवर्टर का उपयोग एक उचित रूप से संशोधित मोटाई वापस जाने के लिए:

object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
{ 
    var thickness = (Thickness) value; 
    return new Thickness(0.0, thickness.Top, 0.0, thickness.Bottom); 
} 

तुम भी की जो भागों निर्दिष्ट करने के लिए इस्तेमाल कर सकते हैं ConverterParameter साफ़ करने के लिए मोटाई।

+0

Ahaa ... आपको बहुत बहुत 4 अपने त्वरित और सटीक जबाब धन्यवाद ... मैं हाल ही में निर्भरता गुणों के बारे में पता चला ... मैं कैसे भूल सकता है कि ?! – mg007

0

हाँ, तो आप इस सीधे XAML में एक कनवर्टर बिना कर सकते हैं। {TemplateBinding …} सीमित कार्यक्षमता के साथ {Binding RelativeSource={RelativeSource TemplatedParent} …} के लिए केवल एक वाक्य रचनात्मक चीनी है।

आपका की समस्या समाधान:

<Thickness Left="0" Right="0" Top="{Binding BorderThickness.Top, RelativeSource={RelativeSource TemplatedParent}}" Bottom="{Binding BorderThickness.Bottom, RelativeSource={RelativeSource TemplatedParent}}" /> 
संबंधित मुद्दे

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