2012-03-23 7 views
0

В настоящее время я создаю программу, которая динамически добавляет Image в dockPanel каждый раз, когда пользователь нажимает кнопку. Мне было интересно, как я могу получить его так, чтобы каждый раз, когда пользователь добавлял другое изображение в dockPanel, изображения уменьшались, чтобы они были одинакового размера и помещались внутри dockPanel.динамически меняющийся размер изображения в Canvas

Вот мой текущий код:.

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

ли вы ** потребность ** использовать холст или вы могли бы использовать другой контейнер макета? – CodingGorilla

+0

@ Кодирование Горилла жаль, что я могу изменить его на dockPanel. Сделаю редактирование – user1219627

+0

@Coding Gorilla Я открыт для изменения его на что-либо. Единственное, что касается униформы, это то, что его нет в моей панели инструментов. – user1219627

ответ

2

Я думаю, вы бы лучше обслуживаться с помощью другой контейнер, в частности, ЧТ e UniformGrid контейнер будет делать именно то, что вы хотите.

Вот хороший учебник: http://www.wpftutorials.com/2011/03/wpf-uniformgrid.html

UPDATE

UniformGrid не может быть в наборе инструментов, но это встроенный в примитив, так что вам есть.

+0

Удивительно, да, это именно то, что мне нужно. Отличная благодарность. Любая идея, почему мой образ не отображается полностью? Он показывает только верхний угол его – user1219627

+0

В UniformGrid? – CodingGorilla

+0

Да, только показывая изображения частично – user1219627

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") 
Смежные вопросы