पर किसी पैनल में UserControl को जोड़ने के लिए मुझे लगता है कि मुझे कुछ याद आ रहा है जो यहां स्पष्ट होना चाहिए, लेकिन मैं इस पर एक खाली चित्रण कर रहा हूं।एक WPF विंडो
मैं एक बहुत ही आदिम एक लॉग विंडो के रूप में उपयोग करने के लिए एक TextBox
से ज्यादा कुछ नहीं युक्त UserControl का निर्माण किया है:
<UserControl x:Class="My.LoggerControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
x:Name="LoggerView">
<Grid x:Name="LayoutRoot">
<TextBox x:Name="LogWindow" AcceptsReturn="True"/>
</Grid>
</UserControl>
मुझे लगता है कि यह करने के लिए सबसे अच्छा तरीका होने की उम्मीद नहीं है, लेकिन यह होना चाहिए एक प्रोटोटाइप के लिए पर्याप्त अच्छा हो।
कोड-पीछे इसी तरह सरल है:
public partial class LoggerControl : UserControl, ILogger
{
public LoggerControl()
{
InitializeComponent();
}
private LogLevel level = LogLevel.Warning;
#region ILogger
public LogLevel Level
{
get { return level; }
set { level = value; }
}
public void OnError(string s)
{
if (level >= LogLevel.Error)
LogWindow.AppendText("ERROR:::" + s + "\n");
}
// ...
#endregion
}
बात मैं समझ नहीं मेरी MainWindow.xaml
को यह नियंत्रण शामिल करने का तरीका है। सरल बनाना, मान लीजिए कि मेरी खिड़की इस तरह दिखता है:
<Window x:Class="My.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:My"
Title="Test" Height="350" Width="525">
<Grid>
<local:LoggerControl x:Name="LogView" />
</Grid>
</Window>
भी इतना आसान कुछ के साथ, विजुअल स्टूडियो 2010 में डिजाइनर मुख्य विंडो लोड नहीं कर सकता। दी गई त्रुटि यह है:
'LoggerControl' प्रकार का एक प्रकार 'UIElementCollection' प्रकार के संग्रहकर्ता शब्दकोश में जोड़ा नहीं जा सकता है।
इस त्रुटि संदेश में प्रमुख खोज इंजन (प्लस डुप्लिकेट) में केवल एक असंबंधित हिट है इसलिए मुझे कोई उपयोगी सहायता नहीं मिली है। माइक्रोसॉफ्ट के अपने दस्तावेज का अर्थ यह है कि यह काम करना चाहिए।
कोई विचार यह कैसे हल करें?
आश्चर्यजनक रूप से पर्याप्त, जब मैं न्यूनतम परीक्षण अनुप्रयोग बनाता हूं तो मेरे पास यह समस्या नहीं है। इसका कारण क्या हो सकता है? – IanGilham