Как сделать гиперссылку в visual studio

Обновлено: 07.07.2024

Все, что я хочу сделать, это сделать небольшую гиперссылку в XAML. Все перепробовала. Я сдаюсь.

Какой у этого синтаксис?

Команда Visual Studio: В Visual Studio 2010 я хочу, чтобы Clippy всплыл и сказал: «Кажется, вы пытаетесь создать гиперссылку», и рассказал мне, как это сделать. Разве вы не можете сделать это с MEF? Это было бы круто в стиле ретро, ​​и эти маленькие вопросы «как мне делать то, что я уже знаю, как делать в HTML» тратят так много времени в процессе обучения с XAML.

+1 - вопросы «как мне делать то, что я уже умею делать в HTML» тратят так много времени в процессе обучения с XAML. »-Человек, вы не ошиблись. С уважением, помещать Clippy в VS - действительно плохая идея !! Можете ли вы представить, что надоедливая скрепка подхватывает то, что вы программируете, и делает неверные предложения? Я думаю, вы могли бы избежать этих проблем, изучив WPF перед тем, как приступить к работе. Так что там с вами; во время написания XAML я постоянно сетую "если бы это был css . ".

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

Вы не можете добавить гиперссылку в StackPanel - вы получите ошибку во время выполнения. (На самом деле, я немного удивлен, что это не ошибка времени компиляции.) Это потому, что гиперссылка не находится на стороне «элементов управления» WPF с <Button> и <StackPanel> и другими вещами, которые заложены выходят на прямоугольные участки экрана и спускаются с UIElement . Вместо этого он живет в "текстовой" стороне вещей, с <Bold> , <Run> и <Paragraph> и другими обычно текстовыми вещами, которые переносятся по словам и перетекают в строки и абзацы и спускаются с TextElement .

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

Но нет, это не так заметно, когда вы начинаете.

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

Гиперссылки используются для перехода в другую часть приложения, в другое приложение либо по указанному универсальному коду ресурса (URI) в отдельном приложении браузера. Существует два способа добавления гиперссылки в приложение XAML: текстовый элемент гиперссылки и элемент управления HyperlinkButton.

Выбор правильного элемента управления

Используйте гиперссылки, если вам необходим текст, который будет реагировать на выбор его пользователем и перенаправлять последнего туда, где он сможет получить дополнительные сведения.

Выбирайте необходимый тип гиперссылки в зависимости от своих потребностей.

  • Используйте текстовый элемент встроенной гиперссылки внутри элемента управления текстом. Элемент гиперссылки сочетается с другими текстовыми элементами, и его можно использовать в любом InlineCollection. Используйте текстовую гиперссылку, если нужно, чтобы обтекание текстом осуществлялось автоматически, и если нет необходимости в большом элементе управления. Текст гиперссылки может быть небольшим, и на него бывает трудно попасть, особенно на устройствах с сенсорным экраном.
  • Для отдельных гиперссылок можно использовать HyperlinkButton. HyperlinkButton — это специализированный элемент управления "кнопка", который можно использовать везде, где вы бы добавили кнопку.
  • Используйте элемент HyperlinkButton с Image в качестве содержимого этого элемента, чтобы создать гиперизображение.

Примеры

Если у вас установлено приложение галереи элементов управления XAML, щелкните здесь, чтобы открыть приложение и увидеть HyperlinkButton в действии.

Создание текстового элемента гиперссылки

В этом примере продемонстрировано использование текстового элемента гиперссылки в TextBlock.

Гиперссылка отображается внутри текстового блока, окружающий текст обтекает ее.

Пример гиперссылки в виде текстового элемента

Совет При использовании гиперссылки в элементе управления Text с другими текстовыми элементами в XAML поместите содержимое в контейнер span и примените xml:space="preserve" к диапазону атрибут, чтобы сохранить пробел между гиперссылкой и другими элементами.

Создание HyperlinkButton

Далее приведен пример использования HyperlinkButton, как с текстом, так и с изображением.

Кнопки-гиперссылки с текстовым содержимым отображаются в виде размеченного текста. Изображение логотипа Contoso также является доступной для нажатия гиперссылкой.

Этот пример демонстрирует, как создать HyperlinkButton в коде.

Обработка навигации

Для обоих типов гиперссылок навигация обрабатывается одним способом; вы можете установить свойство NavigateUri или обработать событие Click.

Переход к URI

Чтобы использовать гиперссылку для перехода к URI, задайте свойство NavigateUri. Когда пользователь нажимает на гиперссылку, указанный URI открывается в браузере по умолчанию. Браузер по умолчанию запускается в виде отдельного процесса из приложения.

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

Обрабатывает событие щелчка

Используйте событие Click для действий, отличных от запуска URI в браузере, например для навигации внутри приложения. Например, чтобы загрузить новую страницу приложения вместо открытия браузера, вызовите метод Frame.Navigate в обработчике события Click для перехода к новой странице приложения. Чтобы внешний абсолютный URI загружался в элементе управления WebView, который также присутствует в приложении, вызовите WebView.Navigate как часть логики обработчика нажатия.

События Click обычно не обрабатываются, если указывается значение NavigateUri, поскольку они представляют два разных способа использования элемента гиперссылки. Чтобы открыть URI в браузере по умолчанию, если указано значение для NavigateUri, не обрабатывайте событие Click. И наоборот, если нужно обработать событие Click, не задавайте NavigateUri.

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

Подчеркивание гиперссылок

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

Текстовые элементы гиперссылки

Чтобы отключить подчеркивание, можно задать свойство UnderlineStyle. В таком случае рассмотрите возможность использования FontWeight или FontStyle для выделения текста ссылки.

HyperlinkButton

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

Текст отображается без подчеркивания в следующих случаях.

  • В качестве значения для свойства Content указано значение TextBlock, а в TextBlock задано свойство Text.
  • Шаблон HyperlinkButton и имя части шаблона ContentPresenter изменились.

Если необходимо, чтобы кнопка отображалась как текст без подчеркивания, воспользуйтесь стандартным элементом управления Button и примените встроенный ресурс системы TextBlockButtonStyle к его свойству Style.

Примечания по использованию текстового элемента гиперссылки

Сведения, приведенные в этом разделе, относятся только к текстовым элементам гиперссылки и не относятся к элементу управления HyperlinkButton.

Поскольку гиперссылки не являются элементами UIElement, они не содержат набор событий ввода элементов пользовательского интерфейса, например Tapped, PointerPressed и т.д. Вместо этого гиперссылки содержат собственные события Click, а также неявно указанное поведение системы при загрузке какого-либо URI как элемента NavigateUri. Система обрабатывает все действия ввода, которые должны вызывать действия Hyperlink, и вызывает в ответ событие Click.

Содержимое

Гиперссылка имеет ограничения относительно содержимого, которое существует в его коллекции Inlines. В частности, гиперссылка разрешает только Run и другие типы Span, которые не являются другим элементом Hyperlink. InlineUIContainer не может находиться в коллекции Inlines гиперссылки. Попытка добавления содержимого с ограничениями вызовет исключение недопустимого аргумента или исключение анализа XAML.

Поведение гиперссылки, темы и стиля

Гиперссылка не наследуется из Control, поэтому она не содержит свойства Style или Template. Можно редактировать свойства, унаследованные из TextElement, такие как Foreground или FontFamily, чтобы изменить внешний вид гиперссылки, но нельзя использовать общий стиль или шаблон, чтобы применить изменения. Вместо шаблона используйте общие ресурсы для значений свойств гиперссылки, чтобы обеспечить согласованность. Некоторые свойства гиперссылки используют значения по умолчанию из значения расширения разметки , предоставляемого системой. Это позволяет изменять внешний вид гиперссылки, если пользователь изменяет системную тему во время выполнения.

По умолчанию для цвета гиперссылки используется цвет элементов системы. Для переопределения этой настройки можно использовать свойство Foreground.

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

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

При визуализации гиперссылки отображаются как хорошо знакомый подчеркнутый текст синего цвета:

Ссылка на другую страницу

Щелчки на ссылке можно обрабатывать двумя способами: реагировать на событие Click и использовать код для выполнения какой-то задачи либо просто направлять пользователя на другую страницу. Однако существует и более простой подход. Класс Hyperlink также включает свойство NavigateUri, которое можно устанавливать так, чтобы оно указывало на любую другую страницу в приложении. В таком случае при щелчке на гиперссылке пользователи будут попадать на целевую страницу автоматически.

Свойство NavigateUri работает только в том случае, если гиперссылка размещается на странице. При желании использовать гиперссылку в оконном приложении, чтобы позволить пользователям выполнять какую-то задачу, переходить на веб-страницу или открывать новое окно, придется обрабатывать событие RequestNavigate и писать код самостоятельно.

Гиперссылки не являются единственным способом для перехода с одной страницы на другую. NavigationWindow включает две заметные кнопки: "назад" и "вперед" (если только они не скрыты установкой свойства Page.ShowsNavigationUI в false). Щелкая на этих кнопках, пользователи могут перемещаться по навигационной последовательности на одну страницу назад или вперед. Как и в окне браузера, пользователи также могут щелкать на стрелке раскрывающегося списка, отображаемой по краям этих кнопок, и просматривать всю последовательность, а также "перепрыгивать" сразу на несколько страниц назад или вперед:

Хронология посещенных страниц

В случае перехода на новую страницу, у которой свойство WindowTitle не установлено, окно сохраняет тот же заголовок, который был на предыдущей странице. Если свойство WindowTitle не устанавливается ни на одной странице, заголовок окна остается пустым.

Навигация по веб-сайтам

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

NavigationFailed — это всего лишь одно из нескольких навигационных событий, которые определены в классе Application.

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

В случае отображения страниц с внешних веб-сайтов нельзя делать много вещей. Например, нельзя запретить пользователю переходить на какие-то конкретные страницы или сайты. Также нельзя и взаимодействовать с веб-страницей с помощью объектной модели документов HTML DOM (Document Object Model — объектная модель документа). Это означает, что сканировать страницу для поиска ссылок или изменять ее динамически тоже нельзя. Выполнение всех этих задач становится возможным только в случае использования элемента управления WebBrowser.

Есть ли какой-нибудь способ сделать гиперссылку с веб-сайта, который открыл бы visual studio и нашел файл / нашел класс в проекте или около того?

У нас есть несколько протоколов проверки кода, где есть имена классов для проверки, и было бы неплохо, если бы вы просто нажали на ссылку, и она привела бы прямо к экземпляру visual studio.

2 ответа

Есть ли способ в visual studio автоматически сделать гиперссылку непосредственно на bug/TestCase/WorkItem? Например, у меня может быть такой кодовый комментарий: //Fix for TFS bug number 12345 Я хочу, чтобы visual studio распознал, что 12345-это номер ошибки, и автоматически дал мне гиперссылку на.

Я использую Visual Studio 2010. При наведении указателя мыши на метод отображается подсказка. Можно ли скопировать эту подсказку? Спасибо!

Вы можете проверить devenv.exe пусковых переключателей(параметры) здесь:

Также вы можете использовать ActiveX для запуска команд CMD для вызова devenv:

Я надеюсь, что это поможет :)

С помощью этого sheme вам нужно зарегистрироваться, чтобы открыть другую программу, написанную вручную (нажмите на vs://-link), чтобы запустить процесс devenv с некоторыми параметрами. Взгляните на это , чтобы получить дополнительную информацию о "Opening a file in a project from the CMD".

Вывод: Это невозможно сделать без установки программы и макроса в Visual Studio.

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

Можно ли установить AnkhSVN на экспресс-версию Visual Studio?

Можно ли использовать компонент из c++ builder 2010 в visual studio 2010 c++? Например, я сделал небольшую программу в c++ builder, которая отправляет email, для этих целей я использовал компонент.

В Visual Studio и SharpDevelop можно ли создать какую-то гиперссылку или ярлык, которые ведут к другой части кода, просто нажав на слово? В более чем одной репризе я хотел бы связать строку кода с.

Есть ли способ в visual studio автоматически сделать гиперссылку непосредственно на bug/TestCase/WorkItem? Например, у меня может быть такой кодовый комментарий: //Fix for TFS bug number 12345 Я.

Я использую Visual Studio 2010. При наведении указателя мыши на метод отображается подсказка. Можно ли скопировать эту подсказку? Спасибо!

У меня есть надстройка Visual Studio, которая открывается с помощью Visual Studio 2012. Если я нажму F5, надстройка будет развернута в экспериментальный экземпляр Visual Studio 2012, и все будет.

Из-за политики компании не разрешается иметь какую-то версию Visual Studio. Можно ли проектировать пакеты SSIS без какой-либо версии Visual studio? На мой взгляд. И поправь меня, если я ошибаюсь.

Моя система имеет VS 2015 и windows 7 Enterprise. У меня есть файл решения, который был создан в vs 2008. После открытия в vs 2008 есть несколько обновленных журналов из vs 2015. для успешной сборки.

Я хочу отслеживать список дел в Visual Studio Code. Можно ли отображать/переключать зачеркнутый текст: задача еще не выполнена задача выполнена (используется.

У меня есть файл csv, с которым я работаю в Visual Studio Code (VSC). Файл содержит несколько гиперссылок, прикрепленных к тексту документа. Например: Available at SSRN.


Гиперссылка обычно используется с веб-сайтами для перехода с одной страницы на другую или с одного веб-сайта на другой в Интернете. Аналогичным образом, мы можем также контролировать движения в листе Excel. Различные операции, которые могут быть выполнены в Excel:

  • Перемещение в определенное место в текущей рабочей книге.
  • Открываем разные документы и выбираем указанную область внутри документа.
  • Переход к веб-страницам с рабочего листа.
  • Отправка электронной почты на указанный адрес.

Гиперссылка легко распознается из-за изменения цвета, в основном синего цвета. Существуют разные способы создания гиперссылки в Excel и использования VBA.

Как создать гиперссылку в Excel, используя код VBA?

Вы можете добавить гиперссылку на текст или один лист на другой лист в Excel, используя свойство добавления гиперссылки. Формат должен сопровождаться указанием, где гиперссылка должна быть создана и URL навигации и т. Д.

Формат для VBA Гиперссылка Добавить


Формат показывает параметры, которые необходимо указать для добавления гиперссылки на лист.

  • Якорь: Определяет ячейку, которую вы хотите создать гиперссылку.
  • Адрес: URL, по которому должна перейти навигация.
  • (SubAddress): подадрес URL.
  • (ScreenTip): значение указателя мыши, отображаемое при размещении указателя мыши.
  • (Текст для отображения): текст должен отображаться в ячейке.

Используйте свойство Active cell, чтобы добавить гиперссылку.


Выберите метод добавления из списка


Примеры создания гиперссылок в Excel VBA

Ниже приведены различные примеры создания гиперссылок в Excel с использованием кода VBA.

Вы можете скачать этот шаблон гиперссылки VBA Excel здесь - Шаблон гиперссылки VBA Excel

Пример № 1 - Создание гиперссылки из рабочего листа на сайт

Мы хотим создать гиперссылку из рабочей таблицы с именем sub на веб-сайт, используя код VBA в Excel.

Ниже приведены шаги для создания гиперссылки в Excel VBA:

Шаг 1: Создайте функцию с именем hyper, чтобы добавить гиперссылку.

Код:


Шаг 2: Используйте активный объект ячейки, чтобы открыть метод добавления гиперссылки.

Код:


Шаг 3: Укажите значения параметров для метода добавления гиперссылки.

Код:

  • Якорь: название листа
  • Адрес: Гиперссылка, по которой следует перемещать элемент управления, учитывая адрес веб-сайта.
  • ScreenTip: текст указателя мыши
  • TextToDisplay: к какому тексту должна быть привязана гиперссылка

Шаг 4: Нажмите F5 или кнопку Run под VBE, чтобы запустить этот код и увидеть результат.


Пример №2 - Гиперссылка для соединения двух листов

У нас есть две таблицы с именами Home и sub . Давайте попробуем создать гиперссылку с юга на дом, используя код VBA.


Выполните следующие шаги, чтобы создать гиперссылку с одного листа на другой в той же книге, используя код VBA.

Шаг 1: Создайте функцию, где мы напишем все коды для выполнения действия. Напишите код для выбора «подчиненного» листа, используя метод выбора рабочего листа.

Код:


Поскольку элемент управления перемещается внутри листа, необходимо выбрать лист, в котором вы создаете гиперссылку.

Шаг 2: Выберите диапазон ячеек на листе, где будет создана гиперссылка.

Код:


Шаг 3: Теперь давайте добавим гиперссылку, используя свойство active cell.

Код:


Поскольку рабочая таблица уже выбрана, привязка задается как «Выбор». Гиперссылка указана как лист «Домой» и диапазон А1.

Шаг 4: Запустите код и на листе будет показана гиперссылка, как показано ниже.

Шаг 5: После нажатия на текст элемент управления будет перемещен на лист « Домой ». И ячейка А1 будет выделена.

Пример № 3 - Гиперссылка с несколькими листами

Если вы хотите создать гиперссылку на нескольких листах, это также возможно. В этом примере у нас есть несколько листов в одной книге. Существует другой тип функций Excel, так что из основного листа «Функции». Давайте попробуем создать гиперссылку на другой лист, названный разными функциями, используя код VBA:

Несколько рабочих листов названы ниже с различными именами функций Excel


Поскольку мы хотим создать гиперссылку на каждый лист, трудно повторить код. Для создания гиперссылки с использованием кода VBA в Excel выполните следующие действия:

Шаг 1: Создайте переменную для удобной работы с таблицей.

Код:


Шаг 2: Теперь мы хотим выбрать главную страницу, которая действует как индексную страницу, и выбрать диапазон ячеек A1.

Код:


Шаг 3: Для перемещения по нескольким рабочим листам и гиперссылкам мы создаем для каждого цикла. A1 уже выбран в качестве активной ячейки, поэтому создайте гиперссылку из этого.

Код:


Шаг 4. Укажите значения параметров, чтобы создать гиперссылку для каждого листа. Поскольку гиперссылка начинается с активной ячейки, якорь = активная ячейка, адрес задается как «» .

Код:


Шаг 5: Гиперссылка проходит через лист, поэтому мы должны указать подадрес в качестве имен листов. Чтобы получить имена листов, мы можем использовать переменную ws и диапазон ячеек как A1. Название листа будет указано с одинарной кавычкой. Имя листа и диапазон будут указаны, а также закрыты одинарной кавычкой.

Код:


Шаг 6: Чтобы получить гиперссылку с именем листа, TextToDisplay присваивается как ws.Name

Код:


Этот код будет хранить гиперссылки для каждого листа в той же ячейке A1.

Шаг 7: Чтобы изменить этот каждый лист на другую ячейку вниз на одну ячейку от активной ячейки.

Код:


Шаг 8: Запустите программу, и каждое имя листа будет отображено на листе «Функции», и при нажатии на него элемент управления переместится на соответствующий лист.

То, что нужно запомнить

  • Свойство гиперссылки активной ячейки, используемой для создания гиперссылок в VBA.
  • Гиперссылка поможет легко перемещаться по книге.

Рекомендуемые статьи

Это руководство по гиперссылкам VBA. Здесь мы узнаем, как создавать гиперссылки на рабочем листе, используя код VBA для быстрого перехода с одного листа на другой, а также некоторые практические примеры и загружаемый шаблон Excel. Вы также можете просмотреть наши другие предлагаемые статьи -

Читайте также: