.Net MAUI, как включить ссылку в меткуC#

Место общения программистов C#
Ответить
Anonymous
 .Net MAUI, как включить ссылку в метку

Сообщение Anonymous »

Использование Visual Studio Community edition 2022.
Новичок в .Net MAUI и пытаюсь следовать примерам, приведенным в документации, найденной по адресу https://learn.microsoft.com/en. -us/dotnet/maui/user-interface/controls/label
Приведенный ниже код XAML (из документации) используется для создания «ссылки» с использованием распознавателя касания: Однако команда (OpenUrlCommand) никогда не вызывается — проверено с использованием эмуляторов Windows и Andriod.
В моей ViewModel я определяю OpenUrlCommand как следует:

Код: Выделить всё

public ICommand OpenUrlCommand => new Command( async ( url ) => await Launcher.OpenAsync( url ) );
... но ничего не работает, я еще пробовал следующее - не получается...

Код: Выделить всё

public ICommand OpenUrlCommand => new Command( async ( url ) => await Browser.OpenAsync( url ) );
... а затем попробовал следующее - опять безуспешно...

Код: Выделить всё

public IRelayCommand OpenUrlCommand => new RelayCommand( async ( url ) => await Launcher.OpenAsync( url ) );
Затем я заменил вызов открытия URL-адреса на Debug.WriteLine(url), и кажется, что OpenUrlCommand никогда не вызывается. Кроме того, можно было бы ожидать, что курсор изменится при наведении курсора на текст «ссылки», но этого не происходит — как будто TapGesterRecouncer не создается и не регистрируется.
Как В последней попытке я также попробовал следующее (опять же, копирование из документации): ... не повезло - ссылка отображается подчеркнутой, но при нажатии на нее ничего не происходит (курсор не меняется, браузер не открывается).
Будем признательны за любой совет или, что еще лучше, рабочий пример.
ОБНОВЛЕНИЕ:
Также нашел этот пост: https:/ /github.com/dotnet/maui/issues/4734 — что выглядит как будто это была известная ошибка еще в феврале!
Согласно @Jessie Zhang -MSFT, я в итоге сделал следующее: ссылка подчеркивается, но с оговоркой, что метка WHOLE можно нажать ... ... и в моей ViewModel:

Код: Выделить всё

  public IRelayCommand OpenUrlCommand => new RelayCommand( launch_browser );

private async void launch_browser( String url )
{

Debug.WriteLine( $"*** Tap: {url}" );

await Browser.OpenAsync( url );

}
... вышеизложенное работает (у меня) в эмуляторах Windows и Android.

Подробнее здесь: https://stackoverflow.com/questions/736 ... in-a-label
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»