[英]Zoom in imageView image using c# wpf
我试图创建一个窗口,其中包含“浏览”按钮来加载图像文件和一个按钮“+”来放大图像。 浏览按钮及其打开的对话框成功将图像加载到Image aka。 当我按下“+”按钮时,它不会放大加载的图像,但会使其模糊。 怎么了?
原始加载的图像名为OriginalSizedImage。 zoomedIn图像命名为
private void ZoomInButton_Click(object sender, RoutedEventArgs e)
{
BitmapImage newZoomedInImage = new BitmapImage();
newZoomedInImage.BeginInit();
newZoomedInImage.DecodePixelWidth = originalSizedImage.DecodePixelWidth + 20 ;
newZoomedInImage.DecodePixelHeight = originalSizedImage.DecodePixelHeight + 20;
newZoomedInImage.UriSource = originalSizedImage.UriSource;
newZoomedInImage.EndInit();
imageView.Source = newZoomedInImage ;
}
每次更改缩放系数时,创建新的BitmapImage都是不必要且低效的。
最好将Image元素放在剪切它的父元素中
<Grid ClipToBounds="True">
<Image x:Name="imageView" RenderTransformOrigin="0.5,0.5">
<Image.RenderTransform>
<ScaleTransform/>
</Image.RenderTransform>
</Image>
</Grid>
然后修改ScaleTransform
被分配给其RenderTransform
(也许还有其RenderTransformOrigin
):
private void ZoomInButtonClick(object sender, RoutedEventArgs e)
{
var transform = (ScaleTransform)imageView.RenderTransform;
transform.ScaleX *= 1.1;
transform.ScaleY *= 1.1;
}
private void ZoomOutButtonClick(object sender, RoutedEventArgs e)
{
var transform = (ScaleTransform)imageView.RenderTransform;
transform.ScaleX /= 1.1;
transform.ScaleY /= 1.1;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.