2009-01-23 13 views
5

मैं System.Windows.Controls.ContentControl से व्युत्पन्न कस्टम नियंत्रण विकसित कर रहा हूं। नियंत्रण डिफ़ॉल्ट टेम्पलेट (विषयों \ generic.xaml) में, मैं एक सीमा तत्व का उपयोग करता हूं जो वास्तविक सामग्री को लपेटता है।क्या सामग्री नियंत्रण द्वारा लागू मार्जिन और पैडिंग हैं?

क्या मेरा कस्टम नियंत्रण पहले से ही मार्जिन और पैडिंग लागू करता है (यानी, सीमा नियंत्रण को पैडिंग सेट के अनुसार सीमा को छोटा करें) या मैं खुद को तय कर सकता हूं, जहां मार्जिन और पैडिंग लागू होती है (यानी मार्जिन सेट करें और पहले से {TemplateBinding Margin} आदि

धन्यवाद करने के लिए सीमा तत्व पर गद्दी गुण!

उत्तर

8

मार्जिन कार्यान्वित किया जाता है मैं सभी तरह की रूपरेखा तत्व में नीचे विश्वास करते हैं। हालांकि पैडिंग नहीं है। ContentControl "PaddingProperty" है, लेकिन डिफ़ॉल्ट यह द्वारा कुछ भी नहीं करता है। असल में आप कंटेंट कंट्रोल की पैडिंग प्रॉपर्टी में सामग्री के मार्जिनप्रोपर्टी को बाध्य करते हैं।

+0

इस दौरान मैं कुछ प्रयोग कर रहा हूं। (पदानुक्रम के प्रत्येक स्तर पर रंगीन सीमाएं जोड़ना) और मैं एक ही निष्कर्ष पर आया हूं। फिर भी धन्यवाद! –

0

मैंने ContentControl के लिए शैली को परिभाषित करके और टेम्पलेट में परिभाषित सामग्री प्रस्तुतकर्ता के मार्जिन को पैडिंग को बाध्य करके समस्या हल की।

<Style TargetType="{x:Type ContentControl}"> 
    <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type ContentControl}">       
        <ContentPresenter Margin="{TemplateBinding Padding}"/>         
       </ControlTemplate> 
      </Setter.Value> 
    </Setter> 
</Style> 

शायद यह दूसरों की सहायता करता है।

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

  • कोई संबंधित समस्या नहीं^_^