Подтвердить что ты не робот

HyperlinkButton в С# XAMARIN.FORMS

Я хочу создать ярлык с возможностью щелчка, например, в WIN-телефоне xaml

<HyperlinkButton Content="My Text to click"/>

Есть ли возможность сделать это в Xamarin.Forms?

Я нашел это, но не то же самое:

https://github.com/XLabs/Xamarin-Forms-Labs/wiki/HyperLinkLabel

4b9b3361

Ответ 1

Я бы предложил использовать GestureRecognizers и добавить Tap Gesture к метке. Ссылка: здесь

var label = new Label()
{
  Text="My Hyperlink"
};
var tapGestureRecognizer = new TapGestureRecognizer();
tapGestureRecognizer.Tapped += (s, e) => {
    // handle the tap
};
label.GestureRecognizers.Add(tapGestureRecognizer);

GestureRecognizer является общедоступным свойством класса View, который наследует Label. См. здесь

Ответ 2

Я бы взял гораздо более стандартный подход и использовал Button. Просто установите фон в соответствии с фоном приложения и удалите границу. Тогда нет необходимости в дополнительном TapGestureRecongniser коде. (Псевдокод ниже:)

Xaml:

<Button Text="Click Me!" Background= "YourAppBackground" BorderWidth="0" Clicked="OnButtonClicked" />

Code-Behind:

void OnButtonClicked(object sender, EventArgs args)
{
    //Open your link in here
}

Ответ 3

Да, вы можете использовать кнопку Clicked или TapGestureRecognizer. Если вы хотите перенаправить на сайт, вы можете использовать WebView. Если вы хотите направить свою собственную страницу: Если вы используете NavigationPage, вы можете использовать   Navigation.PushAsync(новая страница()); Если вы не используете NavigationPage и хотите изменить MainPage:   App.Current.MainPage = новый MyContentPage();

Ответ 4

Это класс, который я использую для обозначения метки как ссылки:

public class SimpleLinkLabel : Label
{
    public SimpleLinkLabel(Uri uri, string labelText = null)
    {
        Text = labelText ?? uri.ToString();
        GestureRecognizers.Add(new TapGestureRecognizer { Command = new Command(() => Device.OpenUri(uri)) });
    }
}

Для получения дополнительных параметров этот ответ о создании гиперссылки в форматах Xamarin может оказаться полезным.

Ответ 5

Код XAML будет выглядеть следующим образом:

<Label
    Text="My Text to click"
    HorizontalOptions="Center" >

    <Label.GestureRecognizers>
        <TapGestureRecognizer
            Tapped="OnLabelTapped"
            NumberOfTapsRequired="2" />
    </Label.GestureRecognizers>
</Label>

Примечание. По умолчанию NumberOfTapsRequired равно 1.

Затем в вашем .cs файле добавьте метод OnLabelTapped.

public void OnLabelTapped(object sender, EventArgs args)
{
    // Your code here
    // Example:
    // DisplayAlert("Message", "You clicked on the label", "OK");
}

Ответ 6

Я делаю это → создаю следующий класс:

public class ButtonAsLink : Button
{
    public ButtonAsLink()
    {
        this.TextColor = Color.Blue;
        this.BackgroundColor = Color.Transparent;
        this.BorderWidth = 0;
    }
}

Тогда везде вам нужно создать кнопку ссылки, используя это:

SendButton = new ButtonAsLink()
        {
            Text = "Send Logs...",
            VerticalOptions = LayoutOptions.Center
        };