Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Windows presentation foundation with - MacDonald M.

MacDonald M. Windows presentation foundation with — Вильямс , 2008. — 928 c.
ISBN 978-5-8459-1429-3
Скачать (прямая ссылка): wpfwindowspresente2008.pdf
Предыдущая << 1 .. 84 85 86 87 88 89 < 90 > 91 92 93 94 95 96 .. 473 >> Следующая

Захват мыши
Обычно каждый раз, когда элемент получает событие “down” кнопки мыши, через короткий промежуток времени он получает соответствующее событие “up” кнопки мыши. Однако так бывает не всегда. Например, если вы щелкаете на элементе, удерживаете нажатой кнопку мыши, а затем перемещаете указатель мыши за пределы элемента, то элемент не получит событие отпускания кнопки мыши.
В некоторых ситуациях вам может понадобиться уведомление о событиях отпускания кнопки мыши, даже если они возникают после того, как указатель мыши покинул пределы элемента. Чтобы получать уведомления, вам нужно захватить мышь, вызывая для этого метод Mouse.Capture() и передавая ему соответствующий элемент. С этого момента вы будете получать события о нажатии и отпускании кнопок мыши до тех пор, пока снова не вызовете метод Mouse.Capture() и не передадите пустую (null) ссылку. Остальные элементы не получат события мыши до тех пор, пока мышь будет оставаться захваченной. Это означает, что пользователь не сможет щелкать кнопками мыши где-либо в окне, щелкать внутри текстовых полей и т.д. Захват мыши иногда используется для реализации функций перетаскивания и изменения размеров элементов. В главе 8 будет приведен пример специального окна, допускающего изменение размеров.
Book_Pro_WPF-2.mdb 183 19.05.2008 18:09:58
184 Глава 6
Совет. При вызове метода МоиБе.СарбигеО вы можете передавать необязательное значение в качестве второго параметра. Обычно при вызове метода МоиБе.СарбигеО используется СарЬигеМоЬе.Е1ешепЬ, а это означает, что ваш элемент будет всегда получать события мыши. Однако вы можете применить СарЬигеМоЗе.БиЪТгее для того, чтобы события мыши могли доходить до элемента, на котором был произведен щелчок кнопкой мыши, если этот элемент является потомком элемента, выполняющего захват. В этом есть смысл, если вы уже используете поднятие или туннелирование события для наблюдения за событиями мыши в дочерних элементах.
В некоторых случаях вы можете утратить захват мыши не по своей воле. Например, Windows может освободить мышь, если ей потребуется отобразить системное диалоговое окно. Это может случиться также в ситуации, если вы не освободите мышь после того, как возникнет событие, а пользователь переместит указатель, чтобы щелкнуть в окне в другом приложении. В любом случае вы сможете реагировать на потерю захвата мыши, обрабатывая событие LostMouseCapture для данного элемента.
Пока мышь будет захвачена элементом, вы не сможете взаимодействовать с другими элементами. (Например, вы не сможете щелкнуть на другом элементе в вашем окне.) Захват мыши обычно используется в краткосрочных операциях, таких как перетаскивание.
Перетаскивание
Операции перетаскивания (способ изъятия информации из одного места в окне и переноса ее в другое место) сегодня не являются столь распространенными, как раньше. Программисты перешли на другие методы копирования информации, которые не требуют удержания нажатой кнопки мыши (технология, овладеть которой многим пользователям удается с трудом). Программы, которые поддерживают операцию перетаскивания, часто предлагают ее как быструю комбинацию для опытных пользователей, а не как стандартный способ работы.
Операции перетаскивания в WPF не претерпели существенных изменений. Если вы использовали их в приложениях Windows Forms, то поймете, что программный интерфейс в WPF остался практически неизмененным. Ключевым отличием является то, что методы и события, используемые в операциях перетаскивания, сосредоточены в классе System.Windows.DragDrop, и через него доступны другим классам (например, UIElement). В действительности, операция перетаскивания выполняется в три этапа, которые описаны ниже.
1. Пользователь щелкает на элементе (или выделяет некоторую область внутри него) и удерживает нажатой кнопку мыши. В этот момент начинается выполнение операции перетаскивания и сохраняется некоторая информация.
2. Пользователь наводит указатель мыши на другой элемент. Если этот элемент может принимать тип перетаскиваемого содержимого (например, порцию текста), указатель мыши принимает вид значка перетаскивания. В противном случае указатель мыши принимает вид перечеркнутого кружка.
3. Когда пользователь отпускает кнопку мыши, элемент получает информацию и принимает решение о дальнейшей ее судьбе. Эту операцию можно отменить, нажав клавишу <Esc> (не отпуская кнопки мыши).
Вы можете потренироваться с операцией перетаскивания, добавив два объекта TextBox в окно, которое имеет код для поддержки операции перетаскивания. Если вы выберете некоторый текст внутри текстового поля, то сможете перетащить его в другое текстовое поле. Когда вы отпустите кнопку мыши, текст будет перемещен. Те же принципы распространяются и на приложения — например, вы можете перетащить кусок текста из документа Word в объект WPF TextBox, или наоборот.
Book_Pro_WPF-2.mdb 184 19.05.2008 18:09:58
Свойства зависимостей и маршрутизируемые события 185
На заметку! Не следует путать операцию перетаскивания с возможностью “перемещения” элемента в пределах окна. Эта особенность является технологией, которую используют инструменты рисования и черчения диаграмм для того, чтобы вы могли перемещать содержимое. Об этом речь пойдет в главе 14.
Предыдущая << 1 .. 84 85 86 87 88 89 < 90 > 91 92 93 94 95 96 .. 473 >> Следующая