मुझे mousewheel का उपयोग कर कैनवास से ज़ूम इन और आउट करने में सक्षम होना चाहिए। मैंने माउस व्हील हैंडलर सफलतापूर्वक स्थापित किए हैं और ज़ूम लागू करने के लिए वर्तमान में स्केलट्रांसफॉर्म का उपयोग कर रहा हूं; हालांकि, स्केलिंग "अंतर्ज्ञानी" तरीके से नहीं की जाती है।सिल्वरलाइट 3 - स्केलट्रांसफॉर्म या कैनवास में ज़ूम करने के लिए अन्य विधि?
मैं "ज़ूमिंग" की एक ही शैली को पूरा करने की कोशिश कर रहा हूं जैसा कि आप मल्टीस्केल इमेज, Google मैप्स/अर्थ, या एडोब एक्रोबैट रीडर में देख सकते हैं - लेकिन नियंत्रण के साथ किसी छवि के साथ नहीं। संक्रमण को "चिकनी" या एनिमेटेड होने की आवश्यकता नहीं है (जब तक कि यह एक आसान दृष्टिकोण न हो), लेकिन कार्यक्षमता एक जैसी होनी चाहिए।
किसी भी विचार या विचारों की अत्यधिक सराहना की जाएगी और अग्रिम धन्यवाद!
संपादित करें:
<Canvas.Resources>
<Storyboard x:Name="ZoomStoryboard">
<DoubleAnimation x:Name="ZoomAnimationX"
Storyboard.TargetName="Workspace"
Storyboard.TargetProperty="Canvas.RenderTransform.ScaleTransform.ScaleX"
Duration="0:0:0.2"/>
<DoubleAnimation x:Name="ZoomAnimationY"
Storyboard.TargetName="Workspace"
Storyboard.TargetProperty="Canvas.RenderTransform.ScaleTransform.ScaleY"
Duration="0:0:0.2"/>
</Storyboard>
</Canvas.Resources>
निम्न कोड के साथ
:: मैं करने के लिए "चिकनी" एनीमेशन का उपयोग कर ज़ूम प्रबंधित किया है
_Zoom += (args.Delta/7);
if (_Zoom < 0.15)
_Zoom = 0.15;
ZoomAnimationX.To = _Zoom;
ZoomAnimationY.To = _Zoom;
ZoomStoryboard.Begin();
ZoomScale.Text = _Zoom.ToString("0.00") + "x";
_PreviousMousePosition = _CurrentMousePosition
हालांकि, समस्या अभी भी उठता है कि यह का ज़ूम है शीर्ष-बाएं कोने, Google मानचित्र जैसी साइटों के विपरीत जहां ज़ूम माउस के चारों ओर "आस-पास" है।
स्रोत के लिए धन्यवाद :) +1 –
केंद्रएनीमेशन क्या है? – Erix