トレイにコンテキストメニューを表示するためにwinforms NotifyIcon
を使用するWPFアプリがあります。次の手順を実行するとアイコンが消えます。右ここダイアログ Alt + F4の後にNotifyIconを非表示にする原因は何ですか?
であることを解任
- 私がこのバグを見る最小の例。
XAML:背後
<Window x:Class="killtrayicon.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:killtrayicon" mc:Ignorable="d" Title="MainWindow" Height="350" Width="525"> <Grid> <Button Content="button" Click="Button_Click"/> </Grid> </Window>
コード:
namespace killtrayicon { using System.Windows; /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { private System.Windows.Forms.NotifyIcon notifyIcon = new System.Windows.Forms.NotifyIcon(); public MainWindow() { InitializeComponent(); notifyIcon.Icon = Properties.Resources.icon; notifyIcon.Visible = true; notifyIcon.Text = "test"; notifyIcon.ContextMenu = new System.Windows.Forms.ContextMenu(); notifyIcon.ContextMenu.MenuItems.Add("click", (s, e) => { MessageBox.Show("menu"); }); } private void Button_Click(object sender, RoutedEventArgs e) { notifyIcon.Icon = Properties.Resources.icon; } } }
私のメインウィンドウのボタンをクリックすると、アイコンをリセットし、通知アイコンが再び表示されます。したがって、通知アイコン自体は削除されていません。
NotifyIcon
のインスタンスを調べると、アイコンがリセットされる前に表示され、Icon
プロパティがリソース内の有効なICOを指していることがわかります。トレイアイコンをクリックしてモーダルダイアログを表示すると、この問題は発生しないため、コンテキストメニューが問題であると思われます。
NotifyIconがAlt + F4に応答しないようにするにはどうすればよいですか?
編集:この質問はと重複していますが、この問題には問題を再現するためのサンプルコードがありません(デッドリンク)。Microsoftに提出された問題へのリンクもデッドリンクです。実際の解決策。
死んだリンクがなくても良い言葉遣いの質問をするにはどうしたらいいですか? – cppguy