cs
public void FollowControl()
{
var existingWindow = Application.Current.Windows
.OfType<FollowMoveControlWindow>()
.FirstOrDefault();
if (existingWindow != null)
{
// 如果窗口被最小化,恢复
if (existingWindow.WindowState == WindowState.Minimized)
{
existingWindow.WindowState = WindowState.Normal;
}
existingWindow.Activate();
existingWindow.Topmost = true;
existingWindow.Topmost = false; // 闪一下置顶效果
}
else
{
var window = new FollowMoveControlWindow();
window.WindowStartupLocation = WindowStartupLocation.CenterOwner;
window.Owner = Application.Current.MainWindow;
window.Show();
window.Activate();
window.Topmost = true;
window.Topmost = false;
}
}

这种适合不要单例的窗体;
如果要单例的话,我经常会在类里面定义一个窗体字段。然后保持Show出来的一直是这个字段,
关闭的时候调用Hide;