簡體   English   中英

使用c#wpf放大imageView圖像

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM