仅为所有者运行具有TopMost属性的exe

时间:2013-10-30 11:39:31

标签: c# wpf

搜索了我最好的朋友谷歌,找不到答案,所以我只会问你们。

我在WPF中创建了一个测试应用程序只是为了尝试一些东西,只有一个按钮,然后单击它我打开记事本,其中包含以下内容:

Process executable = new Process ();
        string executablePath = "notepad.exe";
        executable.StartInfo.FileName = executablePath;
        executable.Start ();

到目前为止一切都那么好,但不完全是我想要的,因为我希望Notepad仅为调用它的应用程序而不是所有内容的TopMost,这意味着,当我打开Chrome,Paint或任何其他应用程序时,记事本不应该在它们之上,而是仅用于测试应用程序本身。

如果我点击所有者的某些内容,是否有一种很好的方法可以实现这一点而不会出现闪烁?

谢谢!

1 个答案:

答案 0 :(得分:0)

正如@HansPassant所提到的,您正试图在Window上设置一个完全在您的应用程序之外的属性。如果您拥有TopMost 的句柄,可以设置其中一个Window Window属性,我不会我相信你可以用这种方式设置Owner属性。

您可以在MSDN上的SetWindowPos function页面上找到更多信息。您还可以在StackOverflow上的C# make a window topmost using a window handle帖子中找到使用此方法设置外部WindowTopMost的实际示例。