在Canvas中动态更改图像大小

本文关键字:图像 Canvas 动态 | 更新日期: 2023-09-27 18:29:02

我目前正在创建一个程序,每当用户按下按钮时,该程序都会将Image动态添加到dockPanel中。我想知道如何获得它,以便每次用户向dockPanel添加另一个图像时,图像都会缩小,使它们大小相同,并适合dockPanel。

这是我当前的代码:

 Uri myUri = new Uri(@"C:'Users'Jim'Desktop'Project'bin'Debug'pic.bmp", UriKind.RelativeOrAbsolute);
            BmpBitmapDecoder decoder2 = new BmpBitmapDecoder(myUri, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
            BitmapSource bitmapSource2 = decoder2.Frames[0];
        // Draw the Image
        Image myImage2 = new Image();
        myImage2.Source = bitmapSource2;
        myImage2.Stretch = Stretch.None;
        myImage2.Margin = new Thickness(20);
        dockPanel1.Children.Add(myImage2);

我试着做myImage2.Height=80myImage2.Width=40(认为它会通过百分比来改变大小,但似乎不起作用

有什么想法吗?

感谢

在Canvas中动态更改图像大小

我认为最好使用不同的容器,特别是UniformGrid容器将完全满足您的要求。

这里有一个很好的教程:http://www.wpftutorials.com/2011/03/wpf-uniformgrid.html

更新

UniformGrid可能不在工具箱中,但它是一个内置的基元,所以您确实有它。

如何将UniformGrid添加到工具箱

- In your toolbox, right-click the header "All WPF Controls"
- Click "Choose Items..."
- Select the "WPF Components" tab
- Scroll down to "UniformGrid"
- Click the checkbox so it's checked
- Click "Ok"
- In your toolbox, drag and drop the new UniformGrid control so it's placed in the correct position alphabetically (on mine, it's between "Treeview" and "Viewbox")