Пример #1
0
        protected override void OnElementChanged(ElementChangedEventArgs <View> elementChangedEventArgs)
        {
            base.OnElementChanged(elementChangedEventArgs);

            if (elementChangedEventArgs.NewElement != null)
            {
                referenceLink = (ReferenceLink)elementChangedEventArgs.NewElement;

                if (referenceLink == null)
                {
                    return;
                }
                referenceLink.PropertyChanged += OnPropertyChanged;

                NSAttributedString attributedString = null;
                var htmlData = NSData.FromString(referenceLink.HtmlText);

                if (htmlData != null)
                {
                    NSError error = new NSError();
                    attributedString =
                        new NSAttributedString(htmlData, new NSAttributedStringDocumentAttributes {
                        DocumentType = NSDocumentType.HTML, StringEncoding = NSStringEncoding.UTF8
                    },
                                               ref error);
                }

                var action = referenceLink.Action;

                textView           = new UITextView();
                textView.TextColor = UIColor.Gray;
                textView.ApplySubtitlesLinks(action(), referenceLink.Sources, attributedString);
                textView.Editable      = false;
                textView.ScrollEnabled = false;
                textView.Font          = UIFont.SystemFontOfSize((nfloat)referenceLink.FontSize);

                // replace old Label with new TextView
                SetNativeControl(textView);
            }
        }