में क्लिक करने योग्य आंशिक पाठ Xamarin फॉर्म में लेबल के पाठ के कुछ हिस्सों को क्लिक करने योग्य, विभिन्न कार्यों को निष्पादित करने, और आदर्श रूप से अलग-अलग स्वरूपण करने का एक तरीका ढूंढ रहा हूं। मैं समझता हूँ कि एक क्लिक करने योग्य लेबल सीधा है और कुछ इस तरह किया जा सकता है:आंशिक पाठ Xamarin लेबल
Label label = new Label { Text = "Click me" };
label.Click +=() => { label.Text = "Clicked"; };
अनिवार्य रूप से, मैं एक ऐप्लिकेशन है जो मैं देशी Android में किया है में व्यवहार की नकल करने के लिए देख रहा हूँ। मेरे ऐप को एंड्रॉइड और आईओएस और आदर्श यूडब्ल्यूपी के लिए काम करना चाहिए। एंड्रॉइड में, CharSequence ऑब्जेक्ट्स को टेक्स्ट व्यू (लेबल के समान नियंत्रण) में जोड़ा जा सकता है। एंड्रॉयड में, मैं इस तरह एक CharSequence वस्तु बना सकता है:
Runnable doSomething; //equivalent to C# Action; assuming initialized somewhere
String myString = "My Clickable String"; //the clickable string
Spannable span = Spannable.Factory.getInstance().newSpannable(myString); //this is the clickable text to add to TextView
span.setSpan(new ClickableSpan() {
@Override
public void onClick(View v) {
doSomething.run(); //perform the action
}
@Override
public void updateDrawState(TextPaint ds) {
ds.setUnderlineText(true); //make underlined
ds.setColor(Color.rgb(color.r, color.g, color.b)); //change the color
ds.setFakeBoldText(true); //make it bold
ds.setTextSize((float) largeFont); //change the text size
}
}, 0, a.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //style and function for the entire string
आप देख सकते हैं, यह एक कार्य और शैली गुण होते हैं। इसके बाद मैं इसे टेक्स्ट व्यू में जोड़ सकता हूं (स्पैन करने योग्य उपकरण स्पैन किया गया है जो CharSequence लागू करता है)। मैं चाहता हूं कि गैर-क्लिक करने योग्य स्ट्रिंग्स के अतिरिक्त मैं कई CharSequences जोड़ सकता हूं।
मुझे उम्मीद है कि मैं Xamarin में ऐसा कर सकता हूं लेकिन मुझे अभी तक कोई समाधान नहीं मिला है। मैंने कस्टम प्रस्तुतकर्ताओं की संभावना पर विचार किया है, हालांकि मुझे लगता है कि यदि संभव हो तो क्रॉस-प्लेटफ़ॉर्म समाधान बेहतर होगा। मैं आईओएस के साथ बहुत कम परिचित हूं लेकिन ऐसा लगता है कि एक समान प्रभाव के लिए एक UILabel को NSMutableAttributedString ऑब्जेक्ट्स जोड़ना संभव है। मैंने FancyLabel ऑब्जेक्ट भी देखा है। मुझे पूरा यकीन नहीं है कि मैं यूडब्ल्यूपी के लिए ऐसा कैसे करूंगा क्योंकि मुझे वास्तव में मेरे शोध में बहुत कुछ नहीं मिला।
किसी भी सहायता की बहुत सराहना की जाएगी!
मैं इसे भी समझना चाहूंगा। अंत में मैंने 'टैपगेशर रिकॉग्नाइज़र' का उपयोग करके पूरे लेबल को क्लिक करने योग्य बना दिया। इसके बजाय केवल विशिष्ट शब्द क्लिक करने योग्य होगा। – hvaughan3
व्यक्तिगत रूप से मैं अपना खुद का कस्टम नियंत्रण बनाउंगा, (माईलेबेल: उइलाबेल), फिर मैं रेंज और सीमा के अंत की शुरुआत के लिए दो सार्वजनिक इंट जोड़ दूंगा। तो मैं एक इशारा पहचानकर्ता जोड़ूंगा और स्ट्रिंग सरणी (label.text) में एक टैप की अनुक्रमणिका को बाहर करूँगा और जो भी एक्शन/ईवेंट आप इसे करना चाहते हैं उसे जोड़ दें। यह मेरे सिर के शीर्ष का एक मोटा विचार है। – Digitalsa1nt
यह वर्तमान में X.Forms लेबल के साथ संभव नहीं है। देखें: https://forums.xamarin.com/discussion/26882/formatted-label-with-xamarin-forms। एक लेबल के लिए एक स्वरूपित स्ट्रिंग प्रॉपर्टी है, लेकिन आप पाठ के फ़ॉन्ट, आकार और रंग को केवल बदल सकते हैं, कुछ पाठों के लिंक नहीं जोड़ सकते हैं। टेक्स्टव्यू (एंड्रॉइड)/यूआईएलएबल (आईओएस) के बीच में एक लिंक जोड़ने के प्लेटफार्म विशिष्ट तरीकों का उपयोग करने के लिए आपको कस्टम रेंडरर का उपयोग करने की आवश्यकता होगी। वैकल्पिक रूप से आप शायद स्थानीय HTML लोड के साथ एक वेबव्यू का उपयोग कर सकते हैं? – jgoldberger