2009-04-28 6 views
25

WPF में कई प्रकार Freezable से प्राप्त होते हैं। यह परिवर्तनीय पीओसीओ वस्तुओं के लिए अपरिवर्तनीयता प्रदान करता है और कुछ स्थितियों में बेहतर प्रदर्शन की अनुमति देता है।फ्रीएबल से प्राप्त डब्ल्यूपीएफ ऑब्जेक्ट्स एक्सएएमएल में जमे हुए कैसे हो सकते हैं?

तो मेरा सवाल यह है कि, मैं एक्सएएमएल मार्कअप में ऑब्जेक्ट कैसे जमा कर सकता हूं?

(ध्यान दें कि मैंने similar but different question भी पोस्ट किया है)।

उत्तर

38

एक Freezable वस्तु मार्कअप में घोषित फ्रीज करने के लिए शामिल है, तो आप Freeze विशेषता का उपयोग एक्सएमएल नेमस्पेस http://schemas.microsoft.com/winfx/2006/xaml/presentation/options में परिभाषित किया गया है।

निम्नलिखित उदाहरण में, SolidColorBrush को पृष्ठ संसाधन और जमे हुए के रूप में घोषित किया गया है। इसका उपयोग तब बटन की पृष्ठभूमि को सेट करने के लिए किया जाता है।

<Page 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:po="http://schemas.microsoft.com/winfx/2006/xaml/presentation/options" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="po"> 

    <Page.Resources> 
    <!-- This brush is frozen --> 
    <SolidColorBrush x:Key="MyBrush" po:Freeze="True" Color="Red" /> 
    </Page.Resources> 

    <!-- Use the frozen brush --> 
    <Button Background="{StaticResource MyBrush}">Click Me</Button> 

</Page> 

स्रोत: Freezable Objects Overview

+2

अंतिम विशेषता 'एमसी नहीं होना चाहिए: अज्ञात = "पीओ" '? – CodeNaked

+0

@CodeNaked, मुझे विश्वास है कि आप सही हैं। संपादित। –

9

अपने XAML नाम स्थान घोषणाओं को यह जोड़ें: तो

xmlns:po="http://schemas.microsoft.com/winfx/2006/xaml/presentation/options" 
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
mc:Ignorable="po" 

, अपने freezable वस्तुओं में, इस विशेषता

po:Freeze="True" 
+0

जहाँ 'एम सी' नाम स्थान से आता है? –

+0

ओह, मुझे लगता है कि मुझे वह याद आया। इसे अभी तय करें। – Botz3000

संबंधित मुद्दे