स्क्रॉलव्यूअर का उपयोग करके केंद्र ओर्गिन से स्केलिंग और पैनिंग छवि यूडब्ल्यूपी में काम नहीं कर रही है
मेरी आवश्यकता है, मैं स्क्रॉलव्यूमर ज़ूमटैक्टर विधि का उपयोग करके एक छवि को प्रोग्रामेटिक रूप से ज़ूम करना चाहूंगा। और ZoomToFactor पद्धति का उपयोग करके ज़ूम मूल्य लागू करते समय, इसे orgin के केंद्र से ज़ूम किया जाना चाहिए।
इसलिए, मैंने एक ग्रिड लेआउट में छवि को जोड़ा है और इसे केंद्र के रूप में क्षैतिज और ऊर्ध्वाधर संरेखण सेट किया है, फिर एक स्क्रॉलव्यूअर के साथ ग्रिड जोड़ा है जैसा कि आप नीचे दिए गए कोड स्निपेट में देखते हैं।
[XAML]
<ContentControl Grid.Row="2">
<ScrollViewer x:Name="scrollViewer" VerticalScrollMode="Enabled" HorizontalScrollMode="Enabled" ZoomMode="Enabled" >
<Grid VerticalAlignment="Center" HorizontalAlignment="Center" Width="216" Height="319">
<Image x:Name="MyImage" Source="Assets\EditedImage.jpg" />
</Grid>
</ScrollViewer>
</ContentControl>
[सी#]
int count = 1;
private void Btn_Click(object sender, RoutedEventArgs e)
{
count += 1;
scrollViewer.ZoomToFactor(count);
}
अंक -1: छवि को शीर्षस्थ स्थिति से ज़ूम किया गया था। लेकिन छवि के केंद्र से ज़ूम किया जाना चाहिए।
अंक -2: ज़ूम-इन के बाद, यदि आप उंगली से क्षैतिज रूप से पैन करते हैं, तो यह पिछली स्थिति में रीसेट हो जाता है।
इसके अलावा, मैं ऊपर कोड में ग्रिड और छवि के लिए (0.5, 0.5) के रूप में RenderTransformOrigin की कोशिश की। वह भी असफल रहा।
नमूना लिंक:
कोई भी, कृपया मुझे बताएं कि उपरोक्त कोड में क्या गलत है।
सादर,
भारती ने।
जवाब
स्क्रॉलव्यूअर का उपयोग करके केंद्र ओर्गिन से स्केलिंग और पैनिंग छवि यूडब्ल्यूपी में काम नहीं कर रही है
मैंने कोड के ऊपर परीक्षण किया है, समस्या का उपयोग आप उस जगह पर करते ScrollViewer
हैं, ContentControlजिसका ScrollViewer
आकार चाइल्ड ग्रिड आकार जैसा है। आप UserControl
प्रतिस्थापित करने के लिए उपयोग कर सकते हैं ।
<UserControl Grid.Row="2">
<ScrollViewer x:Name="scrollViewer" VerticalScrollMode="Enabled" HorizontalScrollMode="Enabled" ZoomMode="Enabled" >
<Grid VerticalAlignment="Center" HorizontalAlignment="Center" Width="216" Height="319" >
<Image x:Name="MyImage" Source="Assets\EditedImage.jpg" Stretch="Uniform" RenderTransformOrigin="0.5, 0.5" />
</Grid>
</ScrollViewer>
</UserControl>