编程语言
首页 > 编程语言> > c#-如何为出现在任务栏中的应用程序的缩略图重新排序?

c#-如何为出现在任务栏中的应用程序的缩略图重新排序?

作者:互联网

假设您在一个应用程序中有多个窗口,并且所有窗口都设置为显示在任务栏中.将鼠标悬停在应用程序的图标上会生成一组缩略图,每个窗口一个.如果有足够的窗口,则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;

        }
    }
}

标签:taskbar,window,wpf,c,windows-7
来源: https://codeday.me/bug/20191111/2019302.html