2012-03-23 83 views
0

我目前正在创建一个程序,每次用户按下按钮时都会动态地将图像添加到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(以为这样就可以通过改变比例大小,但它似乎没有这样的工作方式

任何想法?

感谢

+0

你** **需要使用帆布或你可以使用不同的布局容器? – CodingGorilla 2012-03-23 19:28:45

+0

@编码大猩猩对不起,我改变它为dockPanel。将编辑 – user1219627 2012-03-23 19:29:38

+0

@编码大猩猩我打开它来改变任何事情。唯一关于uniformgrid的是它不在我的工具箱中 – user1219627 2012-03-23 19:33:52

回答

2

我想你会用不同的容器中得到更好的服务,特别是TH e UniformGrid容器将完全按照您的要求进行。

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

UPDATE

UniformGrid可能无法在工具箱中,但它是一个内置的原始,所以你有它。

+0

非常棒,这正是我需要的。伟大的参考感谢。任何想法为什么我的形象不是完全出现?它只显示它的顶角 – user1219627 2012-03-23 19:41:24

+0

在UniformGrid? – CodingGorilla 2012-03-23 19:41:59

+0

是啊,它只显示部分图像 – user1219627 2012-03-23 19:48:04

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")