如何对任务栏中显示的应用程序的缩略图重新排序



假设一个应用程序中有多个窗口,并且所有窗口都设置为显示在任务栏中。将鼠标悬停在应用程序的图标上会产生一组缩略图,每个窗口一个缩略图。如果有足够的窗口,Windows 7 会按名称将其切换到一个高大的、可滚动的窗口列表。

我想以编程方式重新排序这个"缩略图"列表,因为有一个特定的窗口我想成为列表顶部的第二个。我该怎么做?

请注意,我

无法更改窗口的创建顺序(这将是一种解决方案,但不幸的是,我不能利用(。

好吧,事实证明这很简单,我错了。

您需要做的就是将要重新排序的所有Window对象设置为 ShowInTaskbar false 。然后将其设置回 true ,按照您希望窗口出现的确切顺序。无需重新创建 Window 对象。

就我而言,在重新排序期间,窗口闪烁了一次。这可能与我当前的 GFX 驱动程序有关。

注:已测试并适用于 Windows 7 和 Windows 10。

例:

using System.Windows;
namespace WpfApp1
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        Window winA = new Window();
        Window winB = new Window();
        Window winC = new Window();
        public MainWindow()
        {
            InitializeComponent();
            winA.Title = "A";    
            winB.Title = "B";
            winC.Title = "C";
            winB.Show();
            winA.Show();
            winC.Show();
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            winB.ShowInTaskbar = false;
            winA.ShowInTaskbar = false;
            winC.ShowInTaskbar = false;
            winA.ShowInTaskbar = true;
            winB.ShowInTaskbar = true;
            winC.ShowInTaskbar = true;
        }
    }
}

最新更新