2016-08-25 9 views
7

गुम है, मैं this example से विंडोज 10 में एक्शन सेंटर में सरल टोस्ट अधिसूचना बनाना चाहता हूं। लेकिन मुझे चरण 2:विंडोज़.यूआई नोटिफिकेशन

using Windows.UI.Notifications; 

पर समस्या आई है। लेकिन मैंने इसे खोजने के लिए काफी समय बिताया है और इसका कोई परिणाम नहीं मिला है। मुझे वास्तव में कोई जानकारी नहीं है कि मैं कहां पा सकता हूं या कम से कम इसे डाउनलोड कर सकता हूं।

मैं क्या करने की कोशिश की:

  1. लंबी खोज के बाद मैं C:\Windows\System32 में Windows.UI.dll पाया, लेकिन मैं यह त्रुटि आई जब मैं संदर्भ के रूप में जोड़ने के लिए परियोजना में प्रयास करें। के बाद भी मैं इसे कॉपी करने की कोशिश की और बना यह पूरी तरह से सुलभ कुछ भी नहीं

बदल enter image description here

  1. मैं नेट (मैं `4.5.2 का प्रयोग करके) को पुनर्स्थापित करने की कोशिश की
  2. स्थापित Windows 10 एसडीके
  3. के साथ वैश्विक
  4. जोड़ा गया
आयात करने की कोशिश की
<PropertyGroup> 
     <TargetPlatformVersion>10.0</TargetPlatformVersion> 
</PropertyGroup> 
  1. जोड़ा गया System.Runtime.dll संदर्भ

उदाहरण कोड है जो शायद आप के लिए बेकार है:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using Microsoft.Toolkit.Uwp.Notifications; 
using Microsoft.QueryStringDotNET; 
using Windows.UI.Notifications; 


namespace MessagerClient.Notifications { 
    class DefaultWindowsNotification { 

     public static void notificationTest() { 
      string title = "Andrew sent you a picture"; 
      string content = "Check this out, Happy Canyon in Utah!"; 
      string image = "http://blogs.msdn.com/something.jpg"; 
      string logo = "ms-appdata:///local/Andrew.jpg"; 
      ToastVisual visual = new ToastVisual() { 

       BindingGeneric = new ToastBindingGeneric() { 

        Children = 
        { 
         new AdaptiveText() 
         { 
          Text = title 
         }, 

         new AdaptiveText() 
         { 
          Text = content 
         }, 

         new AdaptiveImage() 
         { 
          Source = image 
         } 
        }, 

        AppLogoOverride = new ToastGenericAppLogo() { 
         Source = logo, 
         HintCrop = ToastGenericAppLogoCrop.Circle 
        } 
       } 
      }; 
      Console.WriteLine("NOTIFICATION"); 
      //Can`t use because of Windows.UI library 
      ToastNotificationManager.CreateToastNotifier().Show(visual); 
     } 
    } 
} 
+0

शायद [यह पोस्ट] (http://stackoverflow.com/questions/16486460/showing-windows-8-toast-from-windows-forms-app) आपकी मदद कर सकता है। –

+0

[कृपया डेस्कटॉप लेखों में यूडब्ल्यूपी सूचनाओं का उपयोग करने के लिए ** इस आलेख को पढ़ें **] (https://docs.microsoft.com/en-us/windows/uwp/porting/desktop-to-uwp-enhance) – Mike

उत्तर

13

आप के लिए बहुत कठिन दृश्य स्टूडियो से लड़ने के लिए है Winforms ऐप में इन यूडब्ल्यूपी अनुबंधों का उपयोग करें। आप गलत लक्ष्यप्लेटफॉर्म वर्जन के साथ तुरंत गलत पैर पर उतर गए, उस से ठीक होने के लिए बहुत मुश्किल है। लेने के लिए पूर्ण कदम:

टेक्स्ट संपादक के साथ .csproj फ़ाइल संपादित करें, नोटपैड करेगा। इसे सम्मिलित करें:

<PropertyGroup> 
     <TargetPlatformVersion>10.0.10586</TargetPlatformVersion> 
    </PropertyGroup> 

जो मानता है कि आपके पास 10586 एसडीके संस्करण आपकी मशीन पर स्थापित है। वर्तमान में, ये संस्करण जल्दी बदलते हैं। C: \ Program Files (x86) \ Windows Kits \ 10 \ में एक्सप्लोरर के साथ शामिल करके दोबारा जांचें, आप उस निर्देशिका में सूचीबद्ध स्थापित संस्करण देखते हैं।

विनफॉर्म प्रोजेक्ट खोलें, प्रोजेक्ट> संदर्भ जोड़ें> विंडोज टैब>Windows.Data और Windows.UI अनुबंध पर निशान लगाएं। फिर से संदर्भ जोड़ें और सिस्टम का चयन करने के लिए ब्राउज़ टैब का उपयोग करें। रनटाइम। मैंने सी: \ प्रोग्राम फ़ाइलें (x86) \ संदर्भ असेंबली \ Microsoft \ Framework \ .NETFramework \ v4.6.1 \ Facades में से एक को चुना है। यह संदर्भ एक चेतावनी आइकन के साथ प्रदर्शित होता है, यह सुनिश्चित नहीं करता कि यह क्या कहने का प्रयास कर रहा है लेकिन ऐसा कोई दुष्प्रभाव नहीं दिखता है।

फॉर्म पर एक बटन छोड़कर इसका परीक्षण करें, क्लिक ईवेंट हैंडलर जोड़ने के लिए डबल-क्लिक करें। सबसे बुनियादी कोड:

using Windows.UI.Notifications; 
... 

private void button1_Click(object sender, EventArgs e) { 
    var xml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastText01); 
    var text = xml.GetElementsByTagName("text"); 
    text[0].AppendChild(xml.CreateTextNode("Hello world")); 
    var toast = new ToastNotification(xml); 
    ToastNotificationManager.CreateToastNotifier("anythinggoeshere").Show(toast); 
} 

सुशोभित एक अलग ToastTemplateType का उपयोग करके एक छवि या पाठ की अधिक लाइनों को जोड़ने के लिए। ध्यान रखें कि आपका प्रोग्राम केवल Win10 मशीन पर काम कर सकता है।

+0

धन्यवाद आप, मदद की। – DEADMC

+0

मैंने प्रोजेक्ट> संदर्भ जोड़ें> विंडोज टैब> विंडोज़ का उपयोग नहीं किया। डेटा और विंडोज़.यूआई अनुबंध। उसके बाद यह काम करता है, अरे मैं इतना बुरा हूँ.-.- – DEADMC

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