powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Не меняется размер окна
7 сообщений из 7, страница 1 из 1
Не меняется размер окна
    #39615646
Фотография mraklbrw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый вечер.
Загружаю изображение, если его размер меньше размера окна(800;600), необходимо уменьшить размер окна.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
  Image im1 = new Image();

                    BitmapImage bi = new BitmapImage(new Uri(Full_path));
                    im1.Source = bi;

                        if (this.Width > bi.PixelWidth) { grid1.Width = bi.PixelWidth + 4; this.Width = bi.PixelWidth + 4; }
                        if (this.Height > bi.PixelHeight) {grid1.Height = bi.PixelHeight + 24; this.Height = bi.PixelHeight + 24; }
                   
                    grid1.Children.Add(im1);
                    



Собственно, проверяю значения this.Width и this.Height - они меняются на меньшие (300;200), но в реальности размер окна остаётся таким же, просто само изображение становится маленьким относительно размера окна.
Это как возможно?
...
Рейтинг: 0 / 0
Не меняется размер окна
    #39615744
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mraklbrw,
нужно использовать для Width и Height для Grid значение Auto также для окна установить.
...
Рейтинг: 0 / 0
Не меняется размер окна
    #39615917
Фотография mraklbrw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробовал ставить для grid auto и для grid и window auto.

Код: c#
1.
 grid1.Width = double.NaN; this.Width = double.NaN;



Ничего не меняется.
...
Рейтинг: 0 / 0
Не меняется размер окна
    #39616052
Фотография mraklbrw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эта проблема решена - оказалось, что когда я создавал это окно, то определил его размеры до вызова window1.Show(), из-за этого размеры не менялись.

Однако теперь есть ещё 1 вопрос:
на форме есть grid, на котором размещается Image, полностью заполняя grid.
Я хочу, чтобы от верхнего края формы до grid с image был отступ в 40px.


Код: c#
1.
2.
3.
4.
grid1.Height = 200;
this.Height = 240;

 grid1.Margin = new Thickness(grid1.Margin.Left, grid1.Margin.Top + 40, grid1.Margin.Right, grid1.Margin.Bottom);



Без строки с изменением margin - grid с картинкой занимает весь размер окна, а со строкоц -> grid с картинкой смещается на 40px вниз, но теперь не полностью вмещается на окне.
...
Рейтинг: 0 / 0
Не меняется размер окна
    #39616062
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mraklbrw,
в codebihind никогда не писал разметку, проще через xaml, тем более в WPF завязываться с конкретными значениями пикселей для позиционирования плохая идея.
...
Рейтинг: 0 / 0
Не меняется размер окна
    #39616080
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у окна есть свойство SizeToContent на сколько я помню, оно может не обновляться постоянно, но через UpdateLayout наверняка обновляется или как то еще.
...
Рейтинг: 0 / 0
Не меняется размер окна
    #39616132
Фотография mraklbrw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_sub,

Кое как получилось: сделал margin 40 от top и размер окна + 80.
Как-то странно, но более-менее работает.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Не меняется размер окна
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]