2010-09-15 17 views
7

यहाँ मैं क्या मतलब का एक उदाहरण छवि है: exampleनियंत्रण अपने बाउंडिंग बॉक्स के बाहर क्यों खींच सकता है?

धूसर आयत एक नियंत्रण है कि यह में ब्लू लाइन और डॉट्स ड्रॉ के बाउंडिंग बॉक्स है OnRender(...) विधि है। लाल अंडाकार उन स्थानों को चिह्नित करते हैं जहां यह होता है।

  • यह क्यों संभव है?
  • इससे कैसे बचा जा सकता है?

उत्तर

5

https://msdn.microsoft.com/en-us/library/ms750441(v=vs.100).aspx में डब्ल्यूपीएफ के स्थापत्य डिजाइन के बारे में विस्तृत जानकारी है कि यह क्यों संभव है इसका उत्तर देने के लिए विस्तृत जानकारी है।

इससे बचने के लिए आप अपने तत्व की clip संपत्ति का उपयोग करना चाहते हैं।

<Rectangle Fill="Yellow" Height="100" Width="200" StrokeThickness="2" Stroke="Black"> 
    <Rectangle.Clip> 
    <EllipseGeometry Center="200,100" RadiusX="50" RadiusY="50" /> 
    </Rectangle.Clip> 
</Rectangle> 

अधिक जानकारी के लिए http://msdn.microsoft.com/en-us/library/cc189065%28v=VS.95%29.aspx देखें।

+0

धन्यवाद, मुझे लगता है कि इसे डिस्प्ले पेड़ की तरह कुछ करना है, लेकिन इसके बारे में कोई दस्तावेज नहीं मिला। इसके लिए कैसे टाला जा सकता है, मैं मैन्युअल क्लिपिंग करने से कुछ आसान खोज रहा था - और मुझे बस वह समाधान मिला जो मैं उम्मीद कर रहा था: http://msdn.microsoft.com/en-us/library/ms588678.aspx –

+1

साइड नोट: उपरोक्त लिंक नेट फ्रेमवर्क (अब के रूप में 4.5) के नवीनतम संस्करण को संदर्भित करता है जहां लेख "WPF आर्किटेक्चर" उपलब्ध नहीं है। इसे देखने के लिए आपको संस्करण 4.0 पर स्विच करने की आवश्यकता होगी। – Snowbear

+0

@Snowbear धन्यवाद, लिंक अब अपडेट किया गया है। – PhilB

14

यहाँ कम से कम एक आयताकार आकार नियंत्रण का उपयोग करते समय, मेरे दूसरे प्रश्न के लिए एकदम सही जवाब है: MSDN पर

<object ClipToBounds="True" /> 

अधिक जानकारी।

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