종료 "X"버튼이있는 WPF 응용 프로그램 만 있습니다. 응용 프로그램이 시작되면 시스템 트레이 아이콘이 시작됩니다. "숨기기"또는 "X"를 클릭 할 때 시스템 트레이 메인 창을 닫으려면 싶습니다. 이것을 어떻게 할 수 있습니까?닫기 시스템 트레이에 적용
1
A
답변
1
Application
에 대한 ShutdownMode
은 OnExplicitShutdown
으로 변경해야합니다. App.xaml
에서 설정할 수 있으며 코드에서 Application.Shutdown()
(아마도 일부 명시 적 사용자 명령을 기반으로)을 호출 할 때까지 앱이 작동 상태를 유지합니다. 트레이 아이콘에서 창을 다시 여는 방법은 특정 구현에 따라 다르지만 적어도 시작해야합니다.
1
외부 구성 요소 사용에 주저하지 않으면 WPF NotifyIcon을 권장합니다. 나는 그것을 사용했다. 그것은 간단하고 잘 작동합니다.
해당하는 WinForms 구성 요소에만 의존하지 않고 풍부한 툴팁, 팝업, 컨텍스트 메뉴 및 풍선 메시지를 표시하기 위해 WPF 프레임 워크의 여러 기능을 활용하는 완전히 독립적 인 컨트롤입니다. 당신은 아마 잘못된 키워드로 검색 한
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
System.Windows.Forms.NotifyIcon ni = new System.Windows.Forms.NotifyIcon();
ni.Icon = new System.Drawing.Icon("Main.ico");
ni.Visible = true;
ni.DoubleClick +=
delegate(object sender, EventArgs args)
{
this.Show();
this.WindowState = WindowState.Normal;
};
}
protected override void OnStateChanged(EventArgs e)
{
if (WindowState == WindowState.Minimized)
this.Hide();
base.OnStateChanged(e);
}
}
/// <summary>
/// Handles a click on the notify icon or its balloon.
/// </summary>
/// <param name="sender">Event source.</param>
/// <param name="e">Event arguments.</param>
private void HandleNotifyIconOrBalloonClicked(object sender, EventArgs e)
{
// Restore the Window
_window.WindowState = WindowState.Normal;
}
: [X]
코드 예제
을 누를 경우 당신은 또한 폐쇄 이벤트에서 처리 할 수 있습니다. WPF NotifyIcon에 대한 Google 검색을 사용하면 풍부한 리소스를 찾을 수 있습니다. –