无法让WPF应用程序返回到窗口中的最顶层应用程序

时间:2016-04-01 16:02:48

标签: c# wpf xaml notifyicon

我使用NotifyIcon来实现"最小化图标到托盘"我的WPF应用程序中的功能。最小化工作正常,但是如果我点击"打开",图标将重新出现在任务栏上,但应用程序不会重新出现。我将TopMost属性设置为true(我已尝试过以下两种解决方案),但仍然没有运气。桌面应用程序非常新,所以任何方向/理论都非常受欢迎。

代码背后

    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>

2 个答案:

答案 0 :(得分:1)

使用Window上的Activate方法

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

答案 1 :(得分:0)

Application.Current.MainWindow.WindowState = WindowState.Maximized;