XAML के इस बिट का प्रयास करें:
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Window.Resources>
<ResourceDictionary>
<Window x:Key="aKey">BlogHeader.jpg</Window>
</ResourceDictionary>
</Window.Resources>
<Grid>
<Image Source="{StaticResource aKey}"/>
</Grid>
</Window>
यह ठीक संकलित है, लेकिन जब आप इसे चलाते हैं आप एक क्रम XamlParseException मिलती है:
की वस्तु के लिए विशेषता 'स्रोत' में मूल्य कनवर्ट नहीं कर सकता टाइप करें 'System.Windows.Media.ImageSource'।
आप एक सरल प्रकार उदाहरण के लिए, Window
के बजाय का उपयोग कर प्रयास करें:
तत्व प्रकार 'WpfApplication1.SomeClass' नहीं करता है:
public class SomeType
{
}
आप एक संकलन समय त्रुटि प्राप्त होगी स्ट्रिंग 'BlogHeader.jpg'
का विश्लेषण करने के लिए एक संबद्ध टाइप कनवर्टर है, तो उत्तर TypeConverter
द्वारा प्रदान किया गया हैजो ImageSourceConverter
है। जादू ImageSourceConverter.ConvertFrom
में होता है जो एक स्ट्रिंग लेता है, इससे Uri
बनाता है, और BitmapFrame.Create
का उपयोग BitmapFrame
बनाने के लिए करता है जो ImageSource
से लिया गया है।
ध्यान दें कि मैंने पहले उदाहरण में Window
का उपयोग केवल एक प्रकार का उपयोग करने के लिए किया था जो स्ट्रिंग से टाइप कनवर्टर प्रदान करता है।
शानदार सवाल, इसको उत्तर देने वाले किसी के लिए तत्पर हैं। – Blounty
मुझे जवाब नहीं पता, लेकिन मेरा अनुमान है कि संसाधन प्रबंधक प्रत्येक संसाधन के ठोस प्रकार को जानता है। यह निर्दिष्ट संसाधन का एक उदाहरण बनाता है और केवल तभी जब यह इमेजसोर्स से प्राप्त नहीं होता है तो रन-टाइम अपवाद होता है। – Tergiver