x: नाम और नाम विभिन्न नामस्थानों को संदर्भित कर रहे हैं।
x: नाम Xaml फ़ाइल के शीर्ष पर डिफ़ॉल्ट रूप से परिभाषित x नाम स्थान का संदर्भ है।
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
केवल नाम नाम डिफ़ॉल्ट नाम नीचे का उपयोग करता है।
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
x: नाम कह रहा है कि नाम का उपयोग करें जिसमें x उपनाम है। x डिफ़ॉल्ट है और अधिकांश लोग इसे छोड़ देते हैं लेकिन आप इसे अपनी पसंद के अनुसार बदल सकते हैं
xmlns:foo="http://schemas.microsoft.com/winfx/2006/xaml"
इसलिए आपका संदर्भ foo होगा : नाम
WPF में Namespaces को Define और Use करें
ओके इसे एक अलग तरीके से देखने देता है। कहते हैं कि आप अपने Xaml पृष्ठ पर एक बटन खींचें और छोड़ें। आप इस 2 तरीके x को संदर्भित कर सकते हैं : नाम और नाम । सभी xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" और
xmlns: x = "http://schemas.microsoft.com/winfx/2006/xaml" कर रहे हैं कई नामस्थान के लिए संदर्भ है । के बाद से XAML रखती नियंत्रण नाम स्थान (उस पर नहीं 100%) और प्रस्तुति रखती FrameworkElement और बटन वर्ग के वंशानुक्रम स्वरूप दिया गया है:
Button : ButtonBase
ButtonBase : ContentControl, ICommandSource
ContentControl : Control, IAddChild
Control : FrameworkElement
FrameworkElement : UIElement, IFrameworkInputElement,
IInputElement, ISupportInitialize, IHaveResources
इसलिए जैसा कि कुछ भी उम्मीद करता है कि फ्रेमवर्क से विरासत में मिलने वाली सभी सार्वजनिक विशेषताओं तक पहुंच होगी। इसलिए बटन के मामले में यह फ्रेमवर्क से इसका नाम विशेषता प्राप्त कर रहा है, पदानुक्रम पेड़ के शीर्ष पर। तो आप x: नाम या नाम कह सकते हैं और वे दोनों फ्रेमवर्क से गेटटर / सेटर तक पहुंच सकेंगे।
MSDN संदर्भ
WPF एक CLR विशेषता को परिभाषित करता है जो कि XAML प्रोसेसर द्वारा एक ही XML नामस्थान में कई CLR नामस्थानों को मैप करने के लिए खपाया जाता है। XmlnsDefinitionAttribute विशेषता स्रोत कोड है कि विधानसभा का उत्पादन में विधानसभा स्तर पर रखा गया है। WPF असेंबली सोर्स कोड इस विशेषता का उपयोग विभिन्न सामान्य नामस्थानों जैसे कि System.Windows और System.Windows.Controls पर, http://schemas.microsoft.com/winfx/2006/xaml/pretation नाम पर मैप करने के लिए करता है।
तो विधानसभा विशेषताएँ कुछ इस तरह दिखेंगी:
प्रस्तुतिफ़्रेमवर्क .ll - XmlnsDefinitionAttribute:
[assembly: XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows")]
[assembly: XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows.Data")]
[assembly: XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows.Navigation")]
[assembly: XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows.Shapes")]
[assembly: XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows.Documents")]
[assembly: XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows.Controls")]
x:Name
हर समय का उपयोग करना ठीक काम करता है। मुझे बस इसे बदलना पड़ा हैName
अन्यथा मैं अपने .xaml.cs कोड में नियंत्रण को संदर्भित नहीं कर सकता था, इसलिए मैं यह मानने जा रहा हूं कि अब ऐसा नहीं है कि यह हर समय ठीक काम करता है।