Используя эффект “гиперссылки” в приложениях Winforms

Что люди думают об использовании, симулируют гиперссылки, в приложениях Winforms?

Пример:

alt text

В моем примере Вы нажали бы "в" учетную карточку Организации для Acme Corp. Inc или "в" детали следующего назначения.

Если мы игнорируем, в настоящий момент, как пользователь редактирует Организацию или добавляет/удаляет назначение, это, разумный UI в Winforms для использования синий и подчеркивание для выражения щелкает здесь, и я возьму Вас на новый экран

Как в:

TextBox1.Font = New Font("Blah", 8.25!, FontStyle.Underline etc
TextBox1.ForeColor = Color.Blue

Не упущение:

TextBox1.Cursor = Cursors.Hand

Это было бы для довольно большого приложения (например, CRM), где у Вас есть много различных видов экранов, и пользователь перешел между всеми видами записей. И Вы хотите показать пользователю, что он может перейти между представлениями детали, сетками, дочерними элементами, родителями, одноуровневые элементы и т.д.

Профессионалы:

  • это знакомо пользователям, и это очевидно, не будучи навязчивым или поднимающим никакую экранную недвижимость

  • легкий реализовать

  • часто используемая альтернатива (кнопка со значком или даже всего тремя точками [...]) выглядит немного старомодной, не работает очень хорошо в сетках и занимает место

Недостатки:

  • со всей гибкостью и управлением Вы имеете во фронтэнде Winforms, необходимо ли смочь создать умный ui, не будучи должен одолжить у браузеров (возможно???)

  • эти псевдо ссылки не будут вести себя как истинные теги привязки (не будет никого, которого "посещают" [т.е. окажется мной фиолетовый, если я уже был в здесь] или поведение "при наведении курсора" и никакие open-in-new-tab функции без большой работы)... потенциально раздражающий пользователям?

  • умаляет подлинные гиперссылки (как в адресах электронной почты и т.д.) - они больше не выделяются как ссылки "на Интернет" (к браузеру к почтовому клиенту)... очень незначительная проблема?

8
задан Glorfindel 19 June 2019 в 19:05
поделиться

4 ответа

На мой взгляд, выглядит нормально. Концепция ссылок в любом случае уже перекочевала из веб в настольные приложения. Пользователи должны принять это без проблем (возможно, после первых десяти минут игры с вашей программой).

Также довольно популярно в корпоративных приложениях.

Может быть, стоит изменить цвет на коричневый или зеленый, чтобы он сразу не указывал на то, что ссылка на веб-страницу.

Также многие веб-приложения, построенные с использованием некоторых событийно-управляемых фреймворков (таких как ASP.NET WebForms, JSF и т.д.), активно используют ссылки, которые никуда не ведут, но вызывают некоторую обработку на стороне сервера (по сути, обработчик событий). Так что это не редкое использование.

2
ответ дан 5 December 2019 в 17:36
поделиться

Самый простой способ добавить что-либо вокруг:

var sCategory = '';
$(this).parents('dl').find('dd.categories dl dd.category').each(function(){
sCategory+=' '+$(this).text()+' ';
})
-121--3246046-

использовать QuickFIX? (Я могу видеть QuickFIX в ваших тэгах)

, если это так, я не знаю. Как правило, несложно написать простой синтаксический анализатор для сообщения FIX. Я обнаружил, что веб-инструменты на исправляют .

-121--1393444-

Даже браузеры не работают таким образом. Используйте LinkLabel, а не TextBox.

4
ответ дан 5 December 2019 в 17:36
поделиться

В целом, рекомендуется использовать гиперссылки (реальные или смоделированные) в приложениях для толстого клиента для открытия форм с дополнительной информацией. Полезно различать элемент управления, который просто выполняет навигацию (гиперссылка), и команду, которая изменяет базовые данные (командная кнопка), чтобы пользователи знали, во что они ввязываются. Я не думаю, что большинство пользователей заботятся (или даже знают), задействован ли браузер или нет. Навигация - это навигация.

Если значение атрибута выглядит и действует как гиперссылка, как вы это сделали, - это нормально, за исключением одной вещи, которая является препятствием для большинства приложений: она предотвращает любое другое взаимодействие с атрибутом. Пользователь не может редактировать или даже копировать значение атрибута, поскольку любой щелчок в поле запускает новую форму. Имейте в виду, что для редактирования значения, например для корректировки дня месяца, пользователь может щелкнуть в середине поля, чтобы установить курсор. Даже если вы используете раскрывающееся меню (например, для установки организации), вы хотите разрешить пользователям щелкать в поле и выбирать, вводя первые несколько букв нужного им значения. Если в вашем приложении есть одно поле с возможностью детализации, которое необходимо редактировать, то для внутренней согласованности ни одно из ваших полей не может использовать гиперссылки - все детализация должна выполняться каким-либо другим методом.

Кроме того, хотя гиперссылки интуитивно понятны для навигации, например для детализации, я не уверен, что они подходят для присвоения значения поля.Существует разница между получением дополнительной информации об организации Acme Corp (что подразумевает ваша ссылка на Acme Corp) и получением диалогового окна для выбора организации для Джона Смита (функция назначения). Так что, если ваша цель - назначение, а не истинная детализация, то ссылки, вероятно, не лучшая идея. Для назначения кнопка с тремя точками имеет большой смысл. Присваивание изменяет базовые данные, поэтому следует использовать командную кнопку. Это естественное продолжение кнопки в раскрывающемся списке. Заголовок кнопки с тремя точками минимизирует используемое пространство и связан с диалоговыми окнами, поскольку именно это они подразумевают в заголовках меню и кнопок. Это может показаться старомодным, но именно поэтому оно работает - оно согласуется с прошлым опытом пользователей.

3
ответ дан 5 December 2019 в 17:36
поделиться

На мой взгляд, лучше всего скомпилировать с Android 1.6 sdk и установить для minSdkVersion значение 3 в манифесте.

Я говорю это, основываясь на рекомендации Дайанн Хакборн (пользователь по имени hackbod, который прокомментировал принятый ответ) в этот поток , она является сотрудником Google, который работает на Android источник сам.

В основном существует довольно много устройств Android 1.5 SDK, поэтому компиляция с Android 1.5 SDK обеспечит поддержку большего количества устройств с 1.5 SDK, 1,6 SDK, 2,0 SDK или 2,1 SDK, но есть устройства, которые требуют 1,6 SDK, такие как HTC Tattoo, так что компиляция приложения с помощью 1,6 sdk, но установка minSdkVersion 3 позволяет большинству устройств использовать ваше приложение.

Если вы делаете, как принято ответ, и компилировать с последним 2,1 SDK Приложения, скомпилированные с SDK 2.1, могут использоваться только устройствами с SDK 2.1 или выше, поэтому в основном вы ограничиваете пользователей теми, которые владеют Google Nexus One в данный момент.

-121--4180432-

При профилировании системы, похоже, происходит большая синхронизация потоков из-за сборщика мусора. Я делаю много распределения объектов, поэтому мне интересно, как я могу улучшить параллелизм при минимизации перезаписи моего кода.

Не делайте много распределения объектов. Единственный универсальный способ ускорить код - сделать его менее эффективным. Если GC занимает слишком много времени, есть два теоретических варианта:

  • Реализовать лучший GC, или
  • Дать GC меньше работы, чтобы сделать

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

Второй пункт действительно ваш единственный вариант: если для сбора мусора требуется синхронизация, убедитесь, что происходит меньшее количество сборов. Обычно они возникают, когда куча gen0 слишком заполнена, чтобы удовлетворить запрос на распределение.

Убедитесь, что этого не произошло. Не выделяйте столько объектов. У вас есть несколько способов избежать этого:

  1. использование (распределенных стеком) структур вместо классов может помочь снизить давление GC. Особенно небольшие, недолговечные объекты, вероятно, выиграют от преобразования в структуры
  2. Повторное использование выделенных объектов. Более продолжительные объекты перемещаются в большие кучи, где коллекции происходят редко. Перемещение распределений из циклов, например.
-121--3504587-

Мне это не нравится. Если я вижу ссылку, я ожидаю, что она откроет окно браузера при щелчке. Более стандартным было бы иметь немного «редактировать» кнопку/значок рядом с меткой. После текста можно получить ссылку в стиле «(редактировать)», что также выглядит вполне нормально, а не предполагает использование браузера.

eg:

Организация: | Acme Dustbins (редактировать) |
или
Организация: | Acme Dustbins | (редактировать)

1
ответ дан 5 December 2019 в 17:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: