在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=80
和myImage2.Width=40
(认为它会通过百分比来改变大小,但似乎不起作用
有什么想法吗?
感谢
我认为最好使用不同的容器,特别是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")