Отловить процесс завершения отрисовки

0 голосов
спросил 02 Фев, 12 от Peps (5,330 баллов) в категории Программные продукты Esri
В приложении WPF возникает следующая проблема. Пользователи начинают быстро производить действия (zoom, pan) с картой. Каким образом можно отследить, что предыдущее действие полностью закончено? Пробовал прицепиться на прогресс бар, думал что когда все отрисовано то он скрывается, оказалось это не так. Подскажите как решить проблему?

6 Ответы

0 голосов
ответил 02 Фев, 12 от TDenis (42,620 баллов)
Попробуй отслеживать вот эту парочку
Map.ExtentChanging
Map.ExtentChanged
0 голосов
ответил 03 Фев, 12 от Peps (5,330 баллов)
Попробуй отслеживать вот эту парочку
Map.ExtentChanging
Map.ExtentChanged

Эти события я видел но параметр события в них не потоковой, соответственно e.Handled = true не прокатывает. Часть событий своих я заблокировал с помощью Map.Progress. Только вот не хочется на всех событиях контрола проверять равен прогресс 100 или нет.
0 голосов
ответил 03 Фев, 12 от TDenis (42,620 баллов)
А чего требуется достичь, можно пример?
0 голосов
ответил 03 Фев, 12 от Peps (5,330 баллов)
А чего требуется достичь, можно пример?

Нужно пока в событие Progress<100 заблокировать любые дествия пользователя с картой: колесо мышки, перетаскивание,работу  активных контролов типа zoomIn zoomOut Pan FullExtent.
Ясно что можно поставить проверку в каждом событии, но не очень хочется плодить кучу процедур. Не понятно почему не сделали событие карты ExtentChanging с параметром типа RoutedEventArgs, тогда можно было просто оборвать данное действие.

0 голосов
ответил 03 Фев, 12 от TDenis (42,620 баллов)
заблокировать любые дествия пользователя с картой: колесо мышки, перетаскивание,работу  активных контролов типа zoomIn zoomOut Pan FullExtent.

Почему бы просто не задать IsEnabled="False" или, например, не использовать BusyIndicator?
0 голосов
ответил 06 Фев, 12 от Peps (5,330 баллов)
Проблема решена. В событии  Map.Progress поставил проверку,
if (e.Progress <80) Map.Ish*tTestVisible = false;
else Map.Ish*tTestVisible = true;
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...