ScrollViewer kullanılarak merkezden başlayarak görüntüyü ölçeklemek ve kaydırmak UWP'de çalışmıyor

Aug 18 2020

Benim ihtiyacım, bir görüntüyü scrollviewer ZoomToFactor yöntemini kullanarak programlı olarak yakınlaştırmak istiyorum. ZoomToFactor yöntemini kullanarak yakınlaştırma değeri uygularken, başlangıç ​​noktasının merkezinden yakınlaştırılmalıdır.

Bu yüzden, bir ızgara düzenine görüntü ekledim ve yatay ve dikey hizalamasını merkez olarak ayarladım, ardından aşağıdaki kod parçacığında gördüğünüz gibi bir ScrollViewer ile ızgara ekledim.

[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>

[C #]

 int count = 1;
 private void Btn_Click(object sender, RoutedEventArgs e)
            {
                count += 1;
                scrollViewer.ZoomToFactor(count);            
            }

Sorun-1: Görüntü sol üst konumdan yakınlaştırıldı. Ancak görüntünün merkezinden yakınlaştırılmalıdır.

Sorun-2: Yakınlaştırmadan sonra parmağınızı yatay olarak kaydırırsanız önceki konumuna sıfırlanıyor.

Ayrıca, yukarıdaki kodda Grid ve Image olarak RenderTransformOrigin'i (0.5, 0.5) olarak denedim. Bu da başarısız oldu.

Örnek bağlantı:

Herhangi biri, lütfen yukarıdaki kodda neyin yanlış olduğunu bana yönlendirin.

Saygılarımızla,

Bharathi.

Yanıtlar

1 NicoZhu-MSFT Aug 18 2020 at 16:40

ScrollViewer kullanılarak merkezden başlayarak görüntüyü ölçeklemek ve kaydırmak UWP'de çalışmıyor

Ben kodunun üzerinde test ettik, sorunlu kullanım yerleştirdiğiniz ScrollVieweriçinde ContentControlneden olduğu ScrollViewerçocuk Izgara boyutu aynı boyutta. UserControlDeğiştirmek için kullanabilirsiniz .

<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>