मुझे एक WPF नियंत्रण में कोई समस्या है जिसे मैं WinForms ऐप में ElementHost में होस्ट करने का प्रयास कर रहा हूं। नियंत्रण एक लापरवाह कस्टम नियंत्रण है जिसे मैंने मूल रूप से एक अलग परीक्षण परियोजना में विकसित किया था, जो एक WPF ऐप था। वहां यह स्पष्ट रूप से ठीक काम करता है, लेकिन मेरे WinForms ऐप में मुझे एक खाली ग्रे बॉक्स मिलता है जहां ElementHost प्रदर्शित होता है।WPF नियंत्रण WinForms ऐप में ElementHost में प्रदर्शित नहीं हो रहा है
// This is my WPF control
m_TabHostPanel = new TabHostPanel();
m_ElementHost = new ElementHost
{
Child = m_TabHostPanel,
Dock = DockStyle.Top,
Height = 34
};
this.Controls.Add(m_ElementHost);
माता पिता नियंत्रण अन्य WinForms नियंत्रण जोड़े नहीं जाते कि और रनटाइम पर हटा दिया, के रूप में आवश्यक होता है:
यहाँ, बनाने को आबाद करने, और माता पिता के नियंत्रण के लिए ElementHost जोड़ने के लिए मेरी सी # कोड है। ये सभी डॉक स्टाइल टू डॉक स्टाइल के साथ अकेले होस्ट किए जाते हैं। भरें। इस प्रकार, हर बार जब मैं एक जोड़ने मैं जेड आदेश के पीछे ElementHost भेज यकीन है कि इसे सही ढंग से renders बनाने के लिए: इस प्रकार
m_ElementHost.SendToBack();
, मुझे पता है मैं एक हवाई क्षेत्र समस्या में नहीं चल रहा हूँ, या ऐसा कुछ उस।
एक बात मैं के बारे में आश्चर्य नहीं किया था यह है: मूल परियोजना में अपने सभी lookless नियंत्रण के लिए शैलियों, App.xaml में आवेदन के लिए संसाधन शब्दकोश में मिला दिया गया इस तरह:
<Application x:Class="WpfTestApp.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Application/UserInterface/DataTemplates/TabModelDataTemplate.xaml"/>
<ResourceDictionary Source="Application/UserInterface/Styles/HoverablePressableButtonStyle.xaml"/>
<ResourceDictionary Source="Application/UserInterface/Styles/MiniControlButtonStyle.xaml"/>
<ResourceDictionary Source="Application/UserInterface/Styles/TabCloseButtonStyle.xaml"/>
<ResourceDictionary Source="Application/UserInterface/Styles/TabScrollLeftButtonStyle.xaml"/>
<ResourceDictionary Source="Application/UserInterface/Styles/TabScrollRightButtonStyle.xaml"/>
<ResourceDictionary Source="Application/UserInterface/Styles/TabListDropDownButtonStyle.xaml"/>
<ResourceDictionary Source="Application/UserInterface/Styles/TabHostComboBoxStyle.xaml"/>
<ResourceDictionary Source="Application/UserInterface/Styles/TabButtonStyle.xaml"/>
<ResourceDictionary Source="Application/UserInterface/Styles/TabHostPanelStyle.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
मैं मेरे WinForms प्रोजेक्ट में App.xaml माइग्रेट किया गया है, लेकिन बिल्ड एक्शन पेज पर सेट है। यदि मैं इसे एप्लिकेशनडिफिनिशन पर सेट करता हूं तो मुझे यह कहते हुए एक त्रुटि मिलती है कि एप्लिकेशन में एकाधिक प्रविष्टि बिंदु हैं, जो समझ में आता है, लेकिन मैं सोच रहा हूं कि शैलियों, आदि को उठाया जा रहा है। यदि नहीं, तो यह समझा सकता है कि मुझे एक खाली ग्रे आयताकार क्यों मिल रहा है जहां मेरा नियंत्रण होना चाहिए क्योंकि, इनके बिना, इसके स्वरूप को परिभाषित करने के लिए कुछ भी नहीं है। तो शायद सवाल यह है कि, मैं इन शैलियों को अपने WinForms एप्लिकेशन में कैसे प्राप्त करूं ताकि मेरे डब्ल्यूपीएफ नियंत्रण उन्हें देख सकें?
मुझे शायद यह भी उल्लेख करना चाहिए कि यह .NET Fx 3.5 पर चल रहा है।
वैसे भी, क्योंकि अब मैं परेशान हूं, इसलिए किसी भी मदद की सराहना की जाएगी।
बहुत धन्यवाद!
बार्ट
कैसे आप अनुप्रयोग वर्ग का एक नया उदाहरण बना सकता हूँ? – Prof
आप इसे अभी भी नया कर सकते हैं। –