当我从我的应用程序运行另一个.exe时,它在后台启动,并且没有在屏幕顶部显示应用程序,而是在平板电脑模式下显示主屏幕,它在正常桌面模式下工作正常,但当我在Windows10平板电脑模式下运行它时,它不会显示在顶部,而是在后台启动。
我用过myWindow.TopMost = true;,但它在Windows10平板电脑模式下无法正常工作。
用于启动exe文件的代码
Process p = new Process();
p.StartInfo.RedirectStandardOutput= true;
p.RedirectStandardInput = true;
p = Process.Start("myApp.exe");
p.WaitForExit();我调用(启动)的exe是我自己的exe应用程序(不是系统应用程序),我在windows10上运行应用程序。
它只是在平板模式下不能在top上运行(而且我的应用程序只针对平板电脑)。
感谢任何帮助..!
发布于 2016-08-03 21:01:31
当我遇到类似的情况时,(它与平板电脑无关,也与windows-10无关。只有WPF和 TopMost 标签有相似之处)我会告诉你我是如何解决这个问题的:我希望FilterWindow总是TopMost(但只在我的应用程序上,而不是在我的操作系统中的整个应用程序集上)
请参阅我的代码。希望它能帮到你。
private void OnFilter() {
var filterViewModel = ViewModelLocator.FilterViewModel;
/* ... */
var filterWindow = new FilterWindow {
DataContext = filterViewModel,
Owner = GetParentWindow()
};
filterWindow.ShowDialog();
SelectedIndex = 0;
}
private static Window GetParentWindow() {
Window parent = null;
var activeWindows = Application.Current.Windows.Cast<Window>().Where(item => (item).IsActive).ToList();
if (activeWindows.Any()) {
parent = activeWindows[activeWindows.Count - 1];
}
else {
foreach (var item in
Application.Current.Windows.Cast<object>().Where(item => item.GetType().Name == typeof(RibbonWindow).Name)) {
parent = item as Window;
}
}
return parent;
}神奇的是Owner = GetParentWindow()。
在没有设置Owner的情况下,FilterWindow有一个荒谬的行为。
希望能对你有所帮助。如果不是,我将删除该响应。(它不适合评论)
发布于 2016-12-09 06:12:12
Moerfi提出的使用Owner = GetParentWindow()的解决方案非常有效,非常感谢这个解决方案。它还解决了我遇到的另一个问题。
我正在为Surface 3编写一个应用程序,它运行在Windows10Pro on tablet模式下,每当MessageBox或自定义对话框关闭时,Win10就会进入开始菜单,而不是返回父窗口。
就好像一旦对话控件打开,父窗口就会被放到后台,所以当对话控件关闭时,Win10就没有活动的窗口可以切换回来。
对子对话框控件设置所有者解决了这个问题。非常感谢。
https://stackoverflow.com/questions/38742821
复制相似问题