2009-08-24 11 views
7

आइए कहें कि मेरे पास 1000x1000 बड़ा होने वाला कैनवास परिभाषित है। क्या यह केवल एक व्यूबॉक्स (या एक rectangel) में 100x100 हिस्सा दिखाने के लिए संभव है?डब्ल्यूपीएफ। बड़े कैनवास का केवल एक हिस्सा कैसे दिखाएं?

कोई मदद apreciated है .....

उत्तर

6

आप ब्रश के साथ काम करते हैं, तो आप कम से Viewbox and Viewport in WPF

संपादित करें देखने के लिए चाहते हो सकता है: मैं सिर्फ महसूस किया कि Viewbox और व्यूपोर्ट के लिए उपयोग किया जाता है ब्रश यह वास्तव में आपकी स्थिति में अपरिपक्व नहीं है। मैंने इसे देखा, और मुझे लगता है कि आप UIElement पर Clip संपत्ति पसंद करेंगे।

के बाद से कैनवास भी एक UIElement है, तो आप अपने कैनवास पर एक व्यूपोर्ट अनुकरण करने के लिए क्लिप संपत्ति का उपयोग कर सकते ..

Click here for some simple Geometry types

मुझे लगता है कि आप एक RectangleGeometry

<Canvas> 
    <Canvas.Clip> 
     <RectangleGeometry Rect="50,50,25,25" /> 
    </Canvas.Clip> 
</Canvas> 

साथ पर्याप्त होगा संपादित करें # 2:

हे ठीक है .. अगर आप अपना कुल कैनवास प्रदर्शित करना चाहते हैं, केवल छोटे, पेरेप्स आपको एक नज़र रखना चाहिए और LayoutTransform लेना चाहिए। फिर अपने कैनवास का आकार बदलने के लिए ScaleTranform का उपयोग करें;)।

<Canvas> 
    <Canvas.LayoutTransform> 
     <ScaleTransform CenterX="0" CenterY="0" ScaleX="0.5" ScaleY="0.5" /> 
    </Canvas.LayoutTransform> 
</Canvas> 

मापदंडों ट्वीक जब तक आप वांछित प्रभाव प्राप्त;)

+0

व्यूपोर्ट है मैं वास्तव में क्या चाहते हैं। दुर्भाग्य से कैनवास के लिए ऐसी कोई संपत्ति नहीं है। मैं उस सीमा के आसपास कैसे जा सकता हूं? –

+0

अरे एरिक .. मैंने थोड़ा जवाब बदल दिया ... मुझे लगता है कि क्लिप संपत्ति अधिक एप्राइपियेट होगी :) – Arcturus

+0

धन्यवाद! क्लिप लगभग जो मैं खोज रहा हूं वह है। मैं कैनवास का केवल एक हिस्सा दिखाने के लिए क्लिप कर सकता हूं ..... लेकिन मैं उस क्लिप क्षेत्र को आकार देने के लिए आकार बदलना चाहता हूं। क्या यह संभव है? –

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