2010-01-01 9 views
9

WinForms में, मैं एक कस्टम श्रेणी संपत्ति में एक [श्रेणी] विशेषता जोड़ सकता हूं ताकि यह निर्दिष्ट किया जा सके कि कौन सी संपत्ति श्रेणी में संपत्ति होनी चाहिए। मैं इसे WPF में कैसे करूं? धन्यवादWPF कस्टम नियंत्रण के लिए संपत्ति श्रेणी सेट करें?

उत्तर

15

मुझे पता चला है कि में है जो एक कस्टम नियंत्रण संपत्ति में एक [श्रेणी] विशेषता जोड़ने के लिए डिज़ाइन-टाइम DLL शामिल करने के लिए है। यह एक तरीका है कि यह किया जा सकता है, लेकिन वास्तव में, आप WinForms में किए गए किसी भी .NET विशेषता का उपयोग कर सकते हैं। उदाहरण के लिए:

/// <summary> 
/// The image displayed by the button. 
/// </summary> 
/// <remarks>The image is specified in XAML as an absolute or relative path.</remarks> 
[Description("The image displayed by the button."), Category("Common Properties")] 
public ImageSource Image 
{ 
    get { return (ImageSource)GetValue(ImageProperty); } 
    set { SetValue(ImageProperty, value); } 
} 
3

आपको "मेटाडेटा असेंबली" प्रदान करने की आवश्यकता है, जिसे "डिज़ाइन टाइम डीएलएल" भी कहा जाता है। यह आपकी मुख्य असेंबली के समान नाम वाला एक असेंबली है। इसके साथ डिज़ाइन किया गया है (उदा। MyCompany.MyControls.Design.dll), और इसमें एक वर्ग है जो IRegisterMetadata लागू करता है। IRegisterMetadata कार्यान्वयन आपके मुख्य असेंबली में विभिन्न घटकों के लिए विशेषताओं की एक तालिका बनाता है, और इसे मेटाडेटास्टोर में जोड़ता है।

पूर्ण जानकारी और उदाहरणों के लिए, साइडर टीम here और here के जिम नाकाशिमा द्वारा ब्लॉग पोस्ट देखें।

प्रलेखन के लिए, एमएसडीएन में WPF Designer Extensibility देखें।