wpf
मार्कअप एक्सटेंशन
खोज…
पैरामीटर
तरीका | विवरण |
---|---|
ProvideValue | MarkupExtension वर्ग में केवल एक विधि है जिसे ओवरराइड किया जाना चाहिए, XAML पार्सर तब मार्कअप एक्सटेंशन के परिणाम का मूल्यांकन करने के लिए इस पद्धति द्वारा प्रदान किए गए मूल्य का उपयोग करता है। |
टिप्पणियों
गुण उपयोग में गुण, संपत्ति तत्व उपयोग में गुण, या दोनों के लिए मान प्रदान करने के लिए एक मार्कअप एक्सटेंशन लागू किया जा सकता है।
जब एक विशेषता मान प्रदान करने के लिए उपयोग किया जाता है, तो एक XAML प्रोसेसर के लिए एक मार्कअप एक्सटेंशन अनुक्रम को अलग करने वाला सिंटैक्स, घुंघराले ब्रेस ({और}) को खोलने और बंद करने की उपस्थिति है। मार्कअप एक्सटेंशन के प्रकार को स्ट्रिंग कर्ल द्वारा ओपनिंग कर्ली ब्रेस के तुरंत बाद पहचाना जाता है।
जब संपत्ति तत्व सिंटैक्स में उपयोग किया जाता है, तो एक मार्कअप एक्सटेंशन नेत्रहीन समान होता है जो किसी संपत्ति तत्व मूल्य प्रदान करने के लिए उपयोग किया जाता है: एक एक्सएएमएल तत्व घोषणा जो एंगल ब्रैकेट (<>) के भीतर संलग्न, मार्कअप एक्सटेंशन क्लास को एक तत्व के रूप में संदर्भित करता है।
अधिक जानकारी के लिए https://msdn.microsoft.com/en-us/library/ms747254(v=vs.110).aspx
Markal Extension जिसका उपयोग IValueConverter के साथ किया जाता है
मार्कअप एक्सटेंशन के लिए सबसे अच्छे उपयोगों में से एक IValueConverter के आसान उपयोग के लिए है। BoolToVisibilityConverter के नीचे के नमूने में एक वैल्यू कन्वर्टर है, लेकिन चूंकि यह स्वतंत्र है, इसलिए इसे मार्कअप एक्सटेंशन की मदद से वैल्यू कन्वर्टर के सामान्य समतल बिना उपयोग किया जा सकता है। XAML में बस उपयोग करें
Visibility="{Binding [BoolProperty], Converter={[xmlns]:BoolToVisibilityConverter}}"
और आप आइटम दृश्यता को बूल मान पर सेट कर सकते हैं।
public class BoolToVisibilityConverter : MarkupExtension, IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is bool)
return (bool)value ? Visibility.Visible : Visibility.Collapsed;
else
return Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is Visibility)
{
if ((Visibility)value == Visibility.Visible)
return true;
else
return false;
}
else
return false;
}
public override object ProvideValue(IServiceProvider serviceProvider)
{
return this;
}
}
XAML- परिभाषित मार्कअप एक्सटेंशन
XAML में चार पूर्वनिर्धारित मार्कअप एक्सटेंशन हैं:
x:Type
नाम प्रकार के लिए ऑब्जेक्ट की आपूर्ति करता है। इस सुविधा का उपयोग अक्सर शैलियों और टेम्पलेट्स में किया जाता है।
<object property="{x:Type prefix:typeNameValue}" .../>
x:Static
स्थैतिक मूल्यों का उत्पादन करता है। मान मूल्य-प्रकार कोड संस्थाओं से आते हैं जो सीधे लक्ष्य संपत्ति के मूल्य के प्रकार नहीं हैं, लेकिन उस प्रकार का मूल्यांकन किया जा सकता है।
<object property="{x:Static prefix:typeName.staticMemberName}" .../>
x:Null
एक संपत्ति के लिए मूल्य के रूप में x:Null
निर्दिष्ट करता है और इसका उपयोग या तो विशेषताओं या संपत्ति तत्व मूल्यों के लिए किया जा सकता है।
<object property="{x:Null}" .../>
x:Array
एक्सएएमएल सिंटैक्स में सामान्य सरणियों के निर्माण के लिए समर्थन प्रदान करता है, ऐसे मामलों के लिए जहां WPF आधार तत्वों और नियंत्रण मॉडल द्वारा प्रदान किया गया संग्रह समर्थन जानबूझकर उपयोग नहीं किया जाता है।
<x:Array Type="typeName">
arrayContents
</x:Array>