2012-03-23 25 views
0

Ich erstelle gerade ein Programm, das Bild dynamisch zu einem DockPanel jedes Mal hinzufügt, wenn ein Benutzer eine Taste drückt. Ich habe mich gefragt, wie ich es bekommen könnte, so dass jedes Mal, wenn der Benutzer ein weiteres Bild zum DockPanel hinzufügt, die Bilder verkleinert werden, so dass sie beide die gleiche Größe haben und in das DockPanel passen.dynamisch ändernde Bildgröße in Canvas

Hier ist meine aktuellen Code.

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

Ich habe versucht zu tun myImage2.Height=80 und myImage2.Width=40 (denken, dass es die Größe durch Prozentsatz ändern würde, aber es schien nicht auf diese Weise zu funktionieren

Irgendwelche Ideen ?

Dank

+0

Sie Ihnen ** Bedarf hinzuzufügen ** eine Leinwand zu verwenden, oder könnten Sie einen anderen Layout-Container verwenden? – CodingGorilla

+0

@Coding Gorilla Es tut mir leid, dass ich es zu dockPanel ändern möchte. Will machen bearbeiten – user1219627

+0

@ Coding Gorilla Ich bin offen für alles zu ändern. Einziges an uniformgrid ist, dass es nicht in meiner Toolbox ist. – user1219627

Antwort

2

ich glaube, Sie besser, indem Sie einen anderen Container bedient werden würde, und zwar th e UniformGrid Container wird genau das tun, was Sie wollen.

Hier ist ein gutes Tutorial: http://www.wpftutorials.com/2011/03/wpf-uniformgrid.html

UPDATE

Uniform nicht in der Toolbox sein kann, aber es ist eine eingebaute in primitiven, so dass Sie es zu tun haben.

+0

Ehrfürchtig ja das ist genau das, was ich brauchte. Große Referenz Danke. Irgendeine Idee, warum mein Bild nicht vollständig erscheint, obwohl? Es zeigt nur die obere Ecke davon – user1219627

+0

In der UniformGrid? – CodingGorilla

+0

ja es zeigt nur die Bilder teilweise – user1219627

0

Wie Uniform zur Toolbox

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