我目前正在创建一个程序,每次用户按下按钮时,都会动态地将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
(认为它会通过百分比改变大小,但似乎没有这样做。
任何想法?
由于
答案 0 :(得分:2)
我认为使用不同的容器可以提供更好的服务,特别是UniformGrid
容器可以完全按照您的需要进行操作。
这是一个很好的教程:http://www.wpftutorials.com/2011/03/wpf-uniformgrid.html
<强>更新强>
UniformGrid可能不在工具箱中,但它是一个内置的原语,所以你确实拥有它。
答案 1 :(得分:0)
如何将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")