स्क्रॉलव्यूअर का उपयोग करके केंद्र ओर्गिन से स्केलिंग और पैनिंग छवि यूडब्ल्यूपी में काम नहीं कर रही है

Aug 18 2020

मेरी आवश्यकता है, मैं स्क्रॉलव्यूमर ज़ूमटैक्टर विधि का उपयोग करके एक छवि को प्रोग्रामेटिक रूप से ज़ूम करना चाहूंगा। और 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 की कोशिश की। वह भी असफल रहा।

नमूना लिंक:

कोई भी, कृपया मुझे बताएं कि उपरोक्त कोड में क्या गलत है।

सादर,

भारती ने।

जवाब

1 NicoZhu-MSFT Aug 18 2020 at 16:40

स्क्रॉलव्यूअर का उपयोग करके केंद्र ओर्गिन से स्केलिंग और पैनिंग छवि यूडब्ल्यूपी में काम नहीं कर रही है

मैंने कोड के ऊपर परीक्षण किया है, समस्या का उपयोग आप उस जगह पर करते 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>