powered by simpleCommunicator - 2.0.35     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Кнопки и сенсорный экран
10 сообщений из 10, страница 1 из 1
Кнопки и сенсорный экран
    #39894246
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется некое приложение (WPF 4.0, Win7), работающее без клавиатуры, весь ввод идёт от сенсорного экрана. Работает вроде бы нормально, но вот отзывчивость кнопок оставляет желать лучшего - бывает, реагируют с третьего-пятого раза; если расположены рядом, то фокус может при клике по кнопке переползти на соседнюю, итп. Кнопки просто привязаны к командам (экземплярам ICommand) в модели через биндинг, никакой обработки touch events не делается. У кнопок переопределён дефолтный темплейт, но внутри там ничего особенного - Border для раскраски, ContentPresenter, несколько VisualStates и триггреров опять же для перекраски в зависимости от. Focusable и IsTabStop установлены в False, FocusVisualStyle в x:Null.
Может, есть для такого случая (сенсорный ввод) какие-то специальные tips & tricks, чтобы сделать интерфейс более отзывчивым?
...
Рейтинг: 0 / 0
Кнопки и сенсорный экран
    #39894265
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
только в твоем WPF проблема?
стандартные WPF-диалоги винды работают нормально?
...
Рейтинг: 0 / 0
Кнопки и сенсорный экран
    #39894293
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
только в твоем WPF проблема?

Видимо, да.
Shocker.Pro
стандартные WPF-диалоги винды работают нормально?

Это приложение вообще не использует стандартных диалогов, поэтому не знаю (но вроде как все именно стандартные диалоги - FileDialog, PrintDialog, всякие там свойства сертификатов, и проч. - они же нативные? По крайней мере, их потроха прекрасно просматриваются с помощью Spy++).
...
Рейтинг: 0 / 0
Кнопки и сенсорный экран
    #39894338
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны,
была аналогичная ситуация- разработка WPF под сенсор, заметил такую особенность- если делать через MVVM и привязвать обратотку кнопки через ICommand- то действительно срабатывает как-то странно и через раз. Но я попробовал сделать обработку клика кнопки через CodeBehind и кнопка отрабатывал четко в 100% случаев.

Код: xml
1.
  <Button Content="Button!" Click="OnButtonClick" />


Понимаю, что должно работать одинаково и при CodeBihind и при MvvM, но по факту я заметил такую особенность на сенсорных экранах.

Попробуй.
...
Рейтинг: 0 / 0
Кнопки и сенсорный экран
    #39894349
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны
Это приложение вообще не использует стандартных диалогов
Я имел ввиду, сама винда. Типа того же таскменеджера

Но, раз vb_sub сталкивался, надо попробовать его вариант.
...
Рейтинг: 0 / 0
Кнопки и сенсорный экран
    #39894351
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_sub
Сон Веры Павловны,
была аналогичная ситуация- разработка WPF под сенсор, заметил такую особенность- если делать через MVVM и привязвать обратотку кнопки через ICommand- то действительно срабатывает как-то странно и через раз. Но я попробовал сделать обработку клика кнопки через CodeBehind и кнопка отрабатывал четко в 100% случаев.

Код: xml
1.
  <Button Content="Button!" Click="OnButtonClick" />


Понимаю, что должно работать одинаково и при CodeBihind и при MvvM, но по факту я заметил такую особенность на сенсорных экранах.

Попробуй.

Я тоже думал так попробовать, но в моём случае это будет очень трудоёмко - в приложении code behind практически нет, все привязки команд к кнопкам находятся внутри стилей и дататемплейтов, и добраться до этих кнопок, чтобы императивно подцепить хэндлеры кликов и тачей - это будет очень долгая и невесёлая песня. Поэтому, собственно, и ищу серебряную пулю :)
...
Рейтинг: 0 / 0
Кнопки и сенсорный экран
    #39894353
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны,
просто попробуй на одну кнопку кинуть обработчик- мне самому интересно это у меня только так получилось или везде. Тем более будет более понятно в каком направлении копать далее.
...
Рейтинг: 0 / 0
Кнопки и сенсорный экран
    #39894356
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны
Я тоже думал так попробовать, но в моём случае это будет очень трудоёмко - в приложении code behind практически нет, все привязки команд к кнопкам находятся внутри стилей и дататемплейтов, и добраться до этих кнопок, чтобы императивно подцепить хэндлеры кликов и тачей - это будет очень долгая и невесёлая песня. Поэтому, собственно, и ищу серебряную пулю :)
Да это как раз не проблема, свой контрол сделаешь, совместимый с кнопкой, и запихнешь везде автозаменой )
Главное обойти проблему
...
Рейтинг: 0 / 0
Кнопки и сенсорный экран
    #39894818
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как выяснилось, вышеописанное поведение на сенсорных экранах - это достаточно давно известный баг: https://github.com/dotnet/wpf/issues/194
Просто навешивание обработчиков кликов в code-behind в моём случае ничего не дало.
Слегка исправил картину способ, указанный здесь . Указанные по этой же ссылке хотфиксы на сайте MS сейчас недоступны - вместо хотфикса они настоятельно предлагают перейти на Win10, что в моем случае невозможно. Вариант с дективацией tablet device (там же ниже) не дал вообще никакого эффекта.
Из интересного: оказывается, в случае сенсорного экрана еще могут некорректно отрабатывать VisualState's в темплейте - способ борьбы с этим есть здесь .
Препарирование механизма touch events в связке с mouse events, и почему последние могут вообще не работать, если в визуальном дереве у какого-то из родителей установлено IsManipulationEnabled = true: http://nui.joshland.org/2010/04/why-wont-wpf-controls-work-with-touch.html
Хоть у меня это свойство нигде не установлено, я всё равно попробовал применить приведенный по ссылке код - метод, вызываемый из TouchUp, судя по содержимому лога, вызывается через раз-другой, т.е. всё-таки TouchPoint живет какой-то своей жизнью, и часто попадает мимо кнопки, несмотря на вызов Mouse.Synchronize.
Ну, и на этом вроде бы всё.
...
Рейтинг: 0 / 0
Кнопки и сенсорный экран
    #39894835
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны,
обязательно сделайте динамическую заставку на экране в режиме простоя, у меня за год на сенсоре пиксели выгорели, в том месте где долго находилась статическая картинка.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Кнопки и сенсорный экран
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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