2 / 2 / 1
Регистрация: 26.02.2011
Сообщений: 64
1

[WPF] Ускорение ресайза окон

13.05.2011, 17:20. Показов 1936. Ответов 6
Метки нет (Все метки)

Можно ли как-то для окна задать такое поведение, что при изменение его размера, содержимое не меняло размер динамически или же просто как-то упростить пересчет размеров содержимого при ресайзе окна? А само изменение размеров происходило бы только, когда изменение размеров окна закончено (юзер отпустил мышку).

Просто у меня в окне есть очень ресурсоемкий график на базе ZedGraph внутри WindowsFormsHost и при изменении размеров окна этот график постоянно перерисовывает себя, хотя этого не нужно.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.05.2011, 17:20
Ответы с готовыми решениями:

Наследование WPF-окон
Доброго времени. Задача примерно такая: есть несколько довольно однотипных моделей (сущностей),...

Закрытие дочерних окон в WPF приложении
Здравствуйте, люди добрые)) Возник такой вопрос, как говорится - помогите, чем сможете.. Моя задача...

WPF MVVM Закрытие/Открытие окон
Доброго времени суток. Там не новая, но нуждаюсь в том, чтобы ткнули носом. Исходные данные: Есть...

WPF: взаимодействие нескольких окон с одной ViewModel
Здравствуйте. Прошу помощи в моей проблеме. Есть проект, в нем ViewModel(в ней класс с полями Name...

6
132 / 99 / 11
Регистрация: 21.11.2007
Сообщений: 544
13.05.2011, 22:27 2
Ну во-первых, лучше отказаться от захощщивания чартов через WinForms - есть, к примеру, чарт D3 для WPF (Dynamic Data Display). Мельком глянул - вроде шустрая. Есть Visifire, но этот продукт тяжелее (но можно поднастроить, чтоб без красотулек).

А по сабжу, навскидку - Можно установить выравнивание для WinFormsHost'а влево/вверх и менять ширину по размеру окна приложения когда юзер отпускает мышку. Но это Мега-Костыль.

ПыСы: Я НЕНАВИЖУ ВИЗИФАЙР!!! и это был не CAPS.. я шифт держал лбом )))
0
2 / 2 / 1
Регистрация: 26.02.2011
Сообщений: 64
13.05.2011, 22:37  [ТС] 3
Dynamic Data Display пробовал, слишком тяжелый для моих графиков. Впрочем, как и все граферы для WPF.
ZedGraph на несколько порядков быстрее, без преувеличения.

А вообще самый быстрый вариант - это Microsoft Chart Controls с графиками типа FastLine. Быстрее, пока ничего не видел.

Короче, я так понял, простым способом тут не извернуться.
Может можно как-то перехватить момент начала изменения размеров окна? Для окончания изменения, вроде, видел событие SizeChanged.
Тогда можно было бы просто отключать контрол во время изменения размеров и включать по окончании.
0
132 / 99 / 11
Регистрация: 21.11.2007
Сообщений: 544
13.05.2011, 23:00 4
Если хочешь, можно по событию (Preview)MouseLeftButtonDown устанавливать this.Visibility = Visibility.Hidden или вообще Collapsed. По событию (Preview)MouseLeftButtonUp устанавливать видимость в Visible. "(Preview)" - события с этим префиксом срабатывают самыми первыми. Возможно пригодится.

Но по-хорошему это не есть "User Friendly"...
1
2 / 2 / 1
Регистрация: 26.02.2011
Сообщений: 64
14.05.2011, 08:43  [ТС] 5
К несчастью, события мыши не вызываются, если нажатие происходит на границе окна.
0
10 / 10 / 1
Регистрация: 02.04.2011
Сообщений: 95
14.05.2011, 09:14 6
на LostMouseCapture для формы попробуй перерисовывать график
1
132 / 99 / 11
Регистрация: 21.11.2007
Сообщений: 544
14.05.2011, 09:19 7
Цитата Сообщение от Exvel Посмотреть сообщение
К несчастью, события мыши не вызываются, если нажатие происходит на границе окна.
А ResizeGrip нельзя заюзать. Или вообще для ресайза в угол формы положить свой контрол, а границы окошка сделать нересайзовыми.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.05.2011, 09:19
Помогаю со студенческими работами здесь

Создание нескольких окон при старте приложения в WPF
Эксперты, взгляните на код и оцените правильность. Есть ли здесь какие-то косяки. App.xaml ...

[WPF] Создание динамического количества окон(текст блоков)
У меня есть приложение для поиска. Мне нужно что бы по команде создавалось окно(или несколько) в...

Равномерное распределение окон Windows в окне WPF приложения
Здравствуйте. Как можно реализовать следующее: открываю два приложения на ПК, затем запускаю...

WPF открыть окно поверх всех окон но не Topmost и не owner = this
Ребят как сделать открытие окон такое же как и в win form ? ну то есть чтобы не поверх всех окон в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru