나는 WPF의 notifyicon 가
내 노트북이 100 % dpi의 확장에있다 (http://www.hardcodet.net/wpf-notifyicon)
를 사용하고 100 % dpi로 트레이 아이콘을 중심으로하지, 상황에 맞는 메뉴의 왼쪽을 중심으로 예상대로 트레이 아이콘랩톱이 100 %가 아닌 경우 상황에 맞는 메뉴가 맨 오른쪽으로 밀려납니다.
고해상도 랩톱 디스플레이에서 100 % 배율이 기본값이 아닙니다.
내 트레이 아이콘이 놓여있는 위치, 즉 시계와 거리가 먼 곳이라면 언제나 메뉴가 항상 보이지 않는 채로 가능한 한 화면의 오른쪽 하단까지 항상 시계 모양으로 나타납니다.
참고 : Windows 8.1의 기본 설치를 테스트하고 있습니다. 또한 NotifyIcon은 WPF에서 트레이 기능을 시도하는 모든 사용자에게 일반적으로 권장되는 NotifyIcon입니다.
재현 대상 : 하드 코드가 제공하는 창없는 샘플에 문제가 있습니다. 나는 창없이 wpf NotifyIcon을 사용하고 코드 나 xaml에서 쉽게 재생산 할 수있다. 사실, 나는 그것을 재현하는 것을 멈출 수 없다. 이 기능은 dpi 스케일링이 켜져있을 때, 즉 1080p 디스플레이가 실제로 해상도가 낮을 때 발생합니다. 즉, 윈도우가 너무 작아서 읽을 수없는 텍스트가있는 응용 프로그램을 멈추게하는 경우입니다.
dpi에 관계없이 상황에 맞는 메뉴를 표시하는 방법에 대한 아이디어가 있습니까?
스크린 샷 kennyzx의 추천에 따라 :
좋은 행동. 빨간색 배경의 m (MEGAsync)이 방금 마우스 오른쪽 버튼으로 클릭되었습니다.
나쁜 행동입니다. 녹색 알림 (내 알림)이 방금 마우스 오른쪽 버튼으로 클릭되어 메뉴가 시계 위에 나타납니다.
! good behaviour. the m on red background (MEGAsync) has just been right-clicked
및 일부 코드 :
var n = new TaskbarIcon();
n.Icon=new System.Drawing.Icon(@"C:\window - 64 - tick.ico");
n.ContextMenu = new System.Windows.Controls.ContextMenu();
n.ContextMenu.Items.Add(new System.Windows.Controls.MenuItem {Header="E_xit" });
이것은 스크린 샷으로 더 잘 설명됩니다. – kennyzx