如何重新排列出现在任务栏中的应用程序的缩略图?
How to re-order the thumbnails for an application that appear in the taskbar?
假设您在一个应用程序中有多个 windows,并且它们都设置为显示在任务栏中。将鼠标悬停在应用程序的图标上会生成一组缩略图,每个缩略图 window。如果有足够的 windows,Windows 7 将其切换为 windows 的高大可滚动列表(按名称)。
我想以编程方式重新排序此 "thumbnail" 列表,因为有一个 window 我想排在列表顶部的第二位。我该怎么做?
请注意,我无法更改 windows 的创建顺序(这是一种解决方案,但不幸的是我无法利用)。
嗯,事实证明这很简单,我错了。
您需要做的就是将要重新排序的所有 Window
个对象设置 ShowInTaskbar
为 false
。然后按照您希望 windows 出现的确切顺序将其设置回 true
。
无需重新创建 Window
对象。
就我而言,在重新排序期间,windows 闪烁了一次。这可能与我当前的 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;
}
}
}
假设您在一个应用程序中有多个 windows,并且它们都设置为显示在任务栏中。将鼠标悬停在应用程序的图标上会生成一组缩略图,每个缩略图 window。如果有足够的 windows,Windows 7 将其切换为 windows 的高大可滚动列表(按名称)。
我想以编程方式重新排序此 "thumbnail" 列表,因为有一个 window 我想排在列表顶部的第二位。我该怎么做?
请注意,我无法更改 windows 的创建顺序(这是一种解决方案,但不幸的是我无法利用)。
嗯,事实证明这很简单,我错了。
您需要做的就是将要重新排序的所有 Window
个对象设置 ShowInTaskbar
为 false
。然后按照您希望 windows 出现的确切顺序将其设置回 true
。
无需重新创建 Window
对象。
就我而言,在重新排序期间,windows 闪烁了一次。这可能与我当前的 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;
}
}
}