{"id":1729,"date":"2021-12-31T17:06:46","date_gmt":"2021-12-31T16:06:46","guid":{"rendered":"http:\/\/www.daniel.slask.pl\/?p=1729"},"modified":"2021-12-31T17:06:46","modified_gmt":"2021-12-31T16:06:46","slug":"wyskakujace-powiadomienia-w-aplikacji-w-visual-c","status":"publish","type":"post","link":"https:\/\/daniel.slask.pl\/m\/wyskakujace-powiadomienia-w-aplikacji-w-visual-c\/","title":{"rendered":"Wyskakuj\u0105ce powiadomienia w aplikacji w Visual C#"},"content":{"rendered":"\n<p>Pisz\u0105c aplikacj\u0119, czasami jest konieczno\u015b\u0107 aby informowa\u0107 u\u017cytkownika o pewnych zdarzeniach w przypadku gdy aplikacja jest zminimalizowana, b\u0105d\u017a gdy chcemy zwr\u00f3ci\u0107 szczeg\u00f3ln\u0105 uwag\u0119 u\u017cytkownika na pewne zachowanie. W tym celu stosuje si\u0119 powiadomienia (czasem zwane notyfikacje &#8211; brzmi bardzo urz\u0119dowo \ud83d\ude09 ), kt\u00f3re pojawiaj\u0105 si\u0119 przewa\u017cnie w prawym dolnym rogu ekranu nad paskiem zada\u0144. <br>Utworzenie kodu, kt\u00f3ry b\u0119dzie powodowa\u0142 pojawianie si\u0119 takich powiadomie\u0144 nie jest trudne i stosuje si\u0119 gotowe narz\u0119dzia\/kontrolki dost\u0119pne w Visual&#8217;u. <\/p>\n\n\n\n<p>W pierwszej kolejno\u015bci, nale\u017cy umie\u015bci\u0107 kontrolk\u0119 <em>notifyIcon <\/em>w naszym programie. W tym celu nale\u017cy w przybornik\u00f3w, w drzewie kontrolek wybra\u0107 <em>typowe kontrolki<\/em>, a nast\u0119pnie odszuka\u0107 <em><strong>NotifyIcon <\/strong><\/em>i przenie\u015b\u0107 do naszej formatki. Nast\u0119pnie konfigurujemy odpowiednio nasz\u0105 kontrolk\u0119. We w\u0142a\u015bciwo\u015bciach mo\u017cemy ustawi\u0107 tytu\u0142, oraz tekst ( <em>BalloonTipTitle<\/em>,  <em>BalloonTipText<\/em>) wy\u015bwietlany w powiadomieniu. W kategorii &#8222;<em>Wygl\u0105d<\/em>&#8221; mo\u017cna r\u00f3wnie\u017c wybra\u0107 ikon\u0119 ( <em>BalloonTipIcon<\/em>), jaka b\u0119dzie wy\u015bwietlana przy powiadomieniu (czy to ma by\u0107 znak informacji, b\u0142\u0119du, czy ostrze\u017cenia), oraz ikon\u0119 (<em>icon<\/em>), jaka b\u0119dzie wy\u015bwietlana w pasku tray. Tutaj warto wspomnie\u0107, \u017ce ikona ta najlepiej jak znajduje si\u0119 w katalogu naszego rozwi\u0105zania. Wszystkie te w\u0142a\u015bciwo\u015bci mo\u017cna zmienia\u0107 r\u00f3wnie\u017c z poziomu kodu. <\/p>\n\n\n\n<figure class=\"wp-block-gallery aligncenter columns-3 wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><a href=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2021\/12\/notyfikacje_kontrolka_notifyicon.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"173\" height=\"300\" src=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2021\/12\/notyfikacje_kontrolka_notifyicon-173x300.jpg\" alt=\"\" data-id=\"1730\" data-full-url=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2021\/12\/notyfikacje_kontrolka_notifyicon.jpg\" data-link=\"http:\/\/www.daniel.slask.pl\/?attachment_id=1730\" class=\"wp-image-1730\" srcset=\"https:\/\/daniel.slask.pl\/m\/wp-content\/uploads\/2021\/12\/notyfikacje_kontrolka_notifyicon-173x300.jpg 173w, https:\/\/daniel.slask.pl\/m\/wp-content\/uploads\/2021\/12\/notyfikacje_kontrolka_notifyicon.jpg 293w\" sizes=\"(max-width: 173px) 100vw, 173px\" \/><\/a><figcaption class=\"blocks-gallery-item__caption\">Kontrolka notifyicon<\/figcaption><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2021\/12\/notyfikacje_wlasciwosci.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"292\" height=\"300\" src=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2021\/12\/notyfikacje_wlasciwosci-292x300.jpg\" alt=\"\" data-id=\"1732\" data-full-url=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2021\/12\/notyfikacje_wlasciwosci.jpg\" data-link=\"http:\/\/www.daniel.slask.pl\/?attachment_id=1732\" class=\"wp-image-1732\" srcset=\"https:\/\/daniel.slask.pl\/m\/wp-content\/uploads\/2021\/12\/notyfikacje_wlasciwosci-292x300.jpg 292w, https:\/\/daniel.slask.pl\/m\/wp-content\/uploads\/2021\/12\/notyfikacje_wlasciwosci.jpg 355w\" sizes=\"(max-width: 292px) 100vw, 292px\" \/><\/a><figcaption class=\"blocks-gallery-item__caption\">W\u0142a\u015bciwo\u015bci dla notifyicon<\/figcaption><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2021\/12\/notyfikacje_zdarzenie.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"276\" height=\"300\" src=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2021\/12\/notyfikacje_zdarzenie-276x300.jpg\" alt=\"\" data-id=\"1731\" data-full-url=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2021\/12\/notyfikacje_zdarzenie.jpg\" data-link=\"http:\/\/www.daniel.slask.pl\/?attachment_id=1731\" class=\"wp-image-1731\" srcset=\"https:\/\/daniel.slask.pl\/m\/wp-content\/uploads\/2021\/12\/notyfikacje_zdarzenie-276x300.jpg 276w, https:\/\/daniel.slask.pl\/m\/wp-content\/uploads\/2021\/12\/notyfikacje_zdarzenie.jpg 361w\" sizes=\"(max-width: 276px) 100vw, 276px\" \/><\/a><figcaption class=\"blocks-gallery-item__caption\">Konfiguracja zdarze\u0144 dla notifyicon<\/figcaption><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p>Natomiast w w\u0142a\u015bciwo\u015bciach zdarze\u0144, mo\u017cna doda\u0107 blok funkcji kt\u00f3ry b\u0119dzie wywo\u0142ywany w przypadku klikni\u0119cia, czy to na powiadomienie, czy na ikon\u0119 w pasku tray. Tam zajmiemy si\u0119 jednak innym razem.<\/p>\n\n\n\n<p>Wywo\u0142anie powiadomienia dokonujemy poprzez wykonanie nast\u0119puj\u0105cego kodu. Do tej metody przekazujemy czas w ms op\u00f3\u017anienia pojawienia si\u0119 powiadomienia.<\/p>\n\n\n\n<pre title=\"\" class=\"wp-block-code\"><code lang=\"csharp\" class=\"language-csharp line-numbers\">notifyIcon1.ShowBalloonTip(100);<\/code><\/pre>\n\n\n\n<p>Mo\u017cna r\u00f3wnie\u017c dokona\u0107 konfiguracj\u0119 informacji zawartych w powiadomieniu w kodzie programu, wykorzystuj\u0105c odniesienie do w\u0142a\u015bciwo\u015bci komponentu <em>notifyIcon<\/em>. Poni\u017cej przedstawiam przyk\u0142ad z autorskiego programu <a href=\"http:\/\/www.daniel.slask.pl\/com-finder\/\" data-type=\"post\" data-id=\"1697\">Com detect<\/a> gdzie wywo\u0142ywane jest powiadomienie w momencie wykrycia nowego urz\u0105dzenia &#8211; serial port.<\/p>\n\n\n\n<pre title=\"\" class=\"wp-block-code\"><code lang=\"csharp\" class=\"language-csharp line-numbers\">\/\/informacja o nowym urz\u0105dzeniu\nif (index_new >= 0)\n{\n\tnotifyIcon1.BalloonTipTitle = \"Pod\u0142\u0105czono nowe urz\u0105dzenie\";\n\tnotifyIcon1.BalloonTipText = \"-> \" + ports[index_new];\n\tnotifyIcon1.ShowBalloonTip(100);\n}<\/code><\/pre>\n\n\n\n<p>Po prawid\u0142owym wyniku warunku, wykonywany jest kod, kt\u00f3ry w pierwszych dw\u00f3ch linijkach ustawia tytu\u0142, a nast\u0119pnie tekst kt\u00f3ry jest wy\u015bwietlany w powiadomieniu. Nast\u0119pnie powiadomienie jest &#8222;wywo\u0142ywane&#8221;. Tak to wygl\u0105da:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-medium is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2021\/12\/DS_com_Podlaczono-300x128.jpg\" alt=\"\" class=\"wp-image-1720\" width=\"225\" height=\"96\" srcset=\"https:\/\/daniel.slask.pl\/m\/wp-content\/uploads\/2021\/12\/DS_com_Podlaczono-300x128.jpg 300w, https:\/\/daniel.slask.pl\/m\/wp-content\/uploads\/2021\/12\/DS_com_Podlaczono.jpg 395w\" sizes=\"(max-width: 225px) 100vw, 225px\" \/><figcaption>Wygl\u0105d powiadomienia<\/figcaption><\/figure><\/div>\n\n\n\n<p>W nast\u0119pnym wpisie umieszcz\u0119 jak minimalizowa\u0107 program do traya, z ukryciem ikony w dolnym pasku. Do tego celu wykorzystamy poznane dzisiaj <strong><em>notifyicon<\/em><\/strong>.<\/p>\n\n\n\n<p>Pozdrawiam<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pisz\u0105c aplikacj\u0119, czasami jest konieczno\u015b\u0107 aby informowa\u0107 u\u017cytkownika o pewnych zdarzeniach w przypadku gdy aplikacja jest zminimalizowana, b\u0105d\u017a gdy chcemy zwr\u00f3ci\u0107 szczeg\u00f3ln\u0105 uwag\u0119 u\u017cytkownika na pewne zachowanie. W tym celu stosuje si\u0119 powiadomienia (czasem zwane notyfikacje &#8211; brzmi bardzo urz\u0119dowo&#8230;<br \/><a class=\"read-more-button\" href=\"https:\/\/daniel.slask.pl\/m\/wyskakujace-powiadomienia-w-aplikacji-w-visual-c\/\">Wi\u0119cej<\/a><\/p>\n","protected":false},"author":1,"featured_media":1720,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[61,8,59],"tags":[192,224,191,227,193],"views":167,"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/daniel.slask.pl\/m\/wp-content\/uploads\/2021\/12\/DS_com_Podlaczono.jpg","jetpack_shortlink":"https:\/\/wp.me\/pcPgV3-rT","_links":{"self":[{"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/posts\/1729"}],"collection":[{"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/comments?post=1729"}],"version-history":[{"count":6,"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/posts\/1729\/revisions"}],"predecessor-version":[{"id":1738,"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/posts\/1729\/revisions\/1738"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/media\/1720"}],"wp:attachment":[{"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/media?parent=1729"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/categories?post=1729"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/tags?post=1729"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}