2016-04-01 24 views
0

WPF uygulamasında "tepsiye simge küçült" özelliğini uygulamak için NotifyIcon kullanıyorum. Küçültme işlemi gayet iyi çalışır, ancak "aç" ı tıklarsam, simge görev çubuğunda yeniden görünür ancak uygulama yeniden görünmez. TopMost özelliğini true olarak ayarlıyorum (aşağıdaki iki çözümü denedim) ancak yine de şansım yok. Masaüstü uygulamalarına çok yeni, böylece herhangi bir yön/teori çok beğeniliyor.WPF uygulamasının pencerede en üstteki uygulamaya dönmesi sağlanamıyor

Kod arkasında

private void TrayIconShowWindow_Click(object sender, RoutedEventArgs e) 
    { 
     WindowState = System.Windows.WindowState.Normal; 
     Visibility = Visibility.Visible; 

     // Neither of these work 
     Application.Current.MainWindow.Topmost = true; 
     Topmost = true; 
    } 

XAML

<taskbar:TaskbarIcon.ContextMenu> 
    <ContextMenu> 
     <MenuItem Header="Open Window" Click="TrayIconShowWindow_Click"> 
      <MenuItem.Icon> 
       <Image Width="16" Height="16" Source="Assets/OpenScreen.png"/> 
      </MenuItem.Icon> 
     </MenuItem> 
     <Separator/> 
     <MenuItem Header="Exit" Click="TrayIconExitApp_Click"> 
      <MenuItem.Icon> 
       <Image Width="16" Height="16" Source="Assets/Close.png"/> 
      </MenuItem.Icon> 
     </MenuItem> 
    </ContextMenu> 
</taskbar:TaskbarIcon.ContextMenu> 

+0

karşıdan yüklemeyi denediğiniz ilk 2 karşıApplication.Current.MainWindow? Şu anda TaskbarIcon – MikeT

+0

için takılıyorsunuz. Nasıl? 'TrayIconShowWindow_Click' ana pencere sınıfımda. – NealR

+1

Denediniz mi? MyWindow.Activate(); '' Topmost ', pencerenin her zaman en üstte olması için pencerenin görüntülenmemesini sağlayan bir ayardır. – Lithium

cevap

1

Pencere üzerinde etkinleştirme yöntemi kullanın

private void TrayIconShowWindow_Click(object sender, RoutedEventArgs e) 
{ 
    this.Activate(); 
} 
+0

Hala aynı sonucu alıyorsunuz – NealR

+0

Pencereyi nasıl saklıyorsunuz? Pencerede sadece standart küçült düğmesini kullanarak mı? –

+0

Bir 'Window_StateChanged' olayını kullanarak ve 'Görünürlük = Görünürlük Hibi' öğesini ayarlayarak – NealR

0
Application.Current.MainWindow.WindowState = WindowState.Maximized; 
İlgili konular