2015-03-03 7 views
5

अपडेट: समस्या .NET 4.5.2 के साथ पेश की प्रतीत होती है। समस्या 4.5.1 या 4.5 के साथ नहीं होती है।WPF NotifyIcon पहले रन पर क्रैश - VisualTarget के मूल दृश्य में माता-पिता नहीं हो सकते हैं

मुझे एक अजीब समस्या है जिसमें मुझे डिबगिंग में कठिनाई हो रही है। हमारे पास फिलिप सुमी द्वारा किए गए अधिसूचना चिह्न के शीर्ष पर एक WPF एप्लिकेशन बनाया गया है। http://www.codeproject.com/Articles/36468/WPF-NotifyIcon http://www.hardcodet.net/wpf-notifyicon

हम डला से verion उपयोग कर रहे हैं:

<package id="Hardcodet.NotifyIcon.Wpf" version="1.0.5" targetFramework="net45" /> 

समस्या यह है कि पहली बार (और केवल पहली बार) आवेदन भाग गया है, यह निम्न अपवादों के साथ विफल रहता है। जब यह प्रतीत होता है तो सिस्टम ट्रे आइकन पर माउस को घुमाने के द्वारा पुन: बनाना आसान है। बाद के रनों में कोई समस्या नहीं है। एप्लिकेशन में कोई सहेजा गया राज्य या लगातार डेटा नहीं है। मुझे पहले और बाद के रनों के बीच किसी भी अंतर के बारे में पता नहीं है। हालांकि यह दूसरी बार बहुत तेजी से शुरू होता है। एक ही समस्या खिड़की रहित उदाहरण एप्लिकेशन में होती है जो NotifyIcon के साथ आता है।

Exception Message and Stack Trace

+0

चूंकि आपके पास इस घटक का स्रोत कोड है, इसलिए आप अपनी समस्या को हल करने का प्रयास कर सकते हैं। बस एक डीबगिंग सत्र शुरू करें और डीबगर में उस अपवाद को पकड़ें। प्रासंगिक वस्तुओं का निरीक्षण करें। शायद, घटक में एक बग है, तो आप इसे लेखक को पोस्ट कर सकते हैं या समाधान का प्रस्ताव दे सकते हैं। – dymanoid

+0

@dymanoid उस पर काम कर रहे थे।यह समस्या तब होती है जब ToolTip.IsOpen संपत्ति को सत्य पर सेट करते हैं। संपत्ति एक ArgumentException फेंकता है। मुझे घटक के स्रोत कोड में कुछ भी गलत नहीं मिला है। – denver

+0

"अगर (_notificationWindow.Visibility == दृश्यता। दृश्यमान) वापसी;" मेरे लिए इस मुद्दे को ठीक किया। मैं खिड़की दिखा रहा हूं जो तुरंत इसके बाद अधिसूचना आइकन (_notificationWindow) का बच्चा है। – CRice

उत्तर

0

मैं पहचान करने के लिए क्या समस्या का असली कारण है नहीं कर पाए हैं। ऐसा लगता है कि ढांचे के 4.5.2 संस्करण में किए गए बदलाव हैं। मुझे निम्नलिखित काम मिल गया।

एप्लिकेशन की शुरुआत में बस एक टूल टिप बनाएं और इसे प्रदर्शित करें। ऐसा लगता है कि चीज़ों को सही तरीके से बनाया जा सकता है। उदाहरण के लिए:

[STAThread] 
static void Main() 
{ 
    ToolTip tt = new ToolTip(); 
    tt.IsOpen = true; 
    tt.IsOpen = false; 
... 
} 

मैं अभी भी जानना चाहूंगा कि वास्तविक समस्या क्या है, इसलिए यदि कोई जानता है तो कृपया पोस्ट करें।

+0

क्या आप कभी इसे समझते हैं? – Boumbles

+0

@ बॉम्बल नोप। हमने इस काम के साथ आवेदन जारी किया। जहां तक ​​मुझे पता है कि कोई समस्या नहीं है। – denver

0

मुझे एक ही समस्या है। दुर्भाग्य से मैं उस व्यवहार को पुन: उत्पन्न करने में सक्षम नहीं हूं लेकिन मेरे पास एक और प्रोग्राम है जो इस पुस्तकालय का उपयोग करता है, जो ठीक काम करता है। तो मुख्य अंतर यह है कि कामकाजी कार्यक्रम न केवल XAML भाग में ToolTipText प्रॉपर्टी का उपयोग कर रहा है बल्कि TrayToolTip प्रॉपर्टी के लिए UIElement भी प्रदान करता है।

<hc:TaskbarIcon.TrayToolTip> 
    <CustomUIElement/> 
</hc:TaskbarIcon.TrayToolTip> 

तो शायद यह एक वैकल्पिक कामकाज हो सकता है।

(सभी रद्द टिप्पणी के लिए क्षमा करें, बस पता लगा है कि कोड ब्लॉक टिप्पणी में समर्थित नहीं हैं)

0

मेरे समाधान शून्य पर आइकन निकालने के लिए किया गया था। प्रश्न में वर्णित एक ही समस्या को हल करने से इसे हटा दिया गया। भले ही लाइन स्टार्टअप पर ऐप को विंडो_Closing में था।

internal System.Windows.Forms.NotifyIcon ni = new System.Windows.Forms.NotifyIcon(); 
.... 
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) 
{ 
    ni.Icon = Null; 
} 

अब मैं Window_Closing पर आइकन का उपयोग कर छिपाने:

private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) 
{ 
    ni.Visible = false; 
} 

(अन्यथा आइकन nitification क्षेत्र में रहती है) Btw: "टूल टिप-समाधान" का उपयोग करने के लिए अधिक 10 SEK स्टार्टअप समय जोड़ा मेरा ऐप

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