ScrollViewer kullanılarak merkezden başlayarak görüntüyü ölçeklemek ve kaydırmak UWP'de çalışmıyor
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
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 ScrollViewer
içinde ContentControlneden olduğu ScrollViewer
çocuk Izgara boyutu aynı boyutta. UserControl
Değ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>