Текст ярлыка с гиперссылкой не показывает курсор мыши при наведении на него курсора в Xamarin - PullRequest
0 голосов
/ 11 июня 2018

Я использую CustomRenderer , чтобы сделать текст метки гиперссылкой.С моим кодом Label отображается подчеркнутым, и мы используем Label.GestureRecognizers для захвата клика.Но курсор мыши не показывает «Рука» после наведения на текст гиперссылки.

Ниже приведен код, который мы используем:

Общий проект:

  • HyperlinkLabel.cs:

    namespace HyperlinkLabelControl
    {
         public class HyperLinkLabel : Label
            {
            }
    }
    
  • MainPage.xaml:

    <?xml version="1.0" encoding="utf-8" ?>
    <ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
                 xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                 xmlns:local="clr-namespace:HyperlinkLabelControl"
                 x:Class="HyperlinkLabelControl.MainPage">
        <ContentPage.Content>
            <StackLayout>
                <local:HyperlinkLabel Text="MyHyperLinkLabel" >
                    <Label.GestureRecognizers>
                        <TapGestureRecognizer
                            Command="{Binding BindingContext.MyClickedCommand, Source={x:Reference List}}"
                            CommandParameter="{Binding .}" />
                    </Label.GestureRecognizers>
                    </local:HyperlinkLabel>
            </StackLayout>
        </ContentPage.Content>
    </ContentPage>
    

Проект UWP:

  • HyperLinkLabelRenderer.cs:

    [assembly: ExportRenderer(typeof(HyperLinkLabel), typeof(HyperLinkLabelRenderer))]
    namespace HyperlinkLabelControl.UWP.Renderers
    {
        public class HyperLinkLabelRenderer : LabelRenderer
        {
            protected override void OnElementChanged(ElementChangedEventArgs<Label> e)
            {
                base.OnElementChanged(e);
                if (Control != null)
                    Control.TextDecorations = TextDecorations.Underline;
            }
        }
    }
    

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

1 Ответ

0 голосов
/ 12 июня 2018

В тексте ярлыка гиперссылки не отображается курсор мыши после наведения курсора на него в Xamarin

Проблема в том, что Hyperlink не было передано TextBlock.InlinesUnderline перечисление предоставляется только под текстовым стилем.Вы можете добавить Hyperlink, как в классе HyperLinkLabelRenderer.

protected override void OnElementChanged(ElementChangedEventArgs<Label> e)
{
    base.OnElementChanged(e);
    if (Control != null)
    {
        Control.Inlines.Clear();
        var hl = new Hyperlink();
        hl.Inlines.Add(new Run { Text = Element.Text });
        Control.Inlines.Add(hl);
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...