C# 从构造函数初始化最顶端的UWP窗口
奇怪的问题。 我正在尝试构建一个桌面应用程序,它可以选择打开第二个“窗口”。 所以富打开了酒吧。 默认情况下,只有条形图应该是最顶部的窗口。 当通过单击按钮调用时,下面的方法工作得很好C# 从构造函数初始化最顶端的UWP窗口,c#,windows,uwp,C#,Windows,Uwp,奇怪的问题。 我正在尝试构建一个桌面应用程序,它可以选择打开第二个“窗口”。 所以富打开了酒吧。 默认情况下,只有条形图应该是最顶部的窗口。 当通过单击按钮调用时,下面的方法工作得很好 private async Task<bool> MakeTopMost() { await ApplicationView.GetForCurrentView().TryEnterViewModeAsync(ApplicationViewMode.CompactOve
private async Task<bool> MakeTopMost()
{
await ApplicationView.GetForCurrentView().TryEnterViewModeAsync(ApplicationViewMode.CompactOverlay);
}
。。。
瞧。什么也没发生。我也尝试了加载的事件。没有骰子。
我错过了什么
编辑:
一个解决办法是点击按钮打开一个新的应用程序,这也会使该应用程序成为最顶级的应用程序。像这样:
private async void ShowCompactView()
{
var compactViewId = ApplicationView.GetForCurrentView().Id;
await CoreApplication.CreateNewView().Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
var frame = new Frame();
frame.Navigate(typeof(BAR));
Window.Current.Content = frame;
Window.Current.Activate();
ApplicationView.GetForCurrentView().Title = "CompactOverlay Window";
});
bool viewShown = await ApplicationViewSwitcher.TryShowAsViewModeAsync(compactViewId, ApplicationViewMode.CompactOverlay);
}
但这使得整个应用程序成为最顶级的(不仅仅是一个页面)。我在问题最后发布的方法中基本上做的是
private async void ShowCompactView()
{
await CoreApplication.CreateNewView().Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
var frame = new Frame();
frame.Navigate(typeof(Bar));
_barID = ApplicationView.GetForCurrentView().Id;
Window.Current.Content = frame;
Window.Current.Activate();
ApplicationView.GetForCurrentView().Title = "CompactOverlay Window";
});
bool viewShown = await ApplicationViewSwitcher.TryShowAsViewModeAsync(sliderID, ApplicationViewMode.CompactOverlay);
}
这应该是显而易见的
private async void ShowCompactView()
{
await CoreApplication.CreateNewView().Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
var frame = new Frame();
frame.Navigate(typeof(Bar));
_barID = ApplicationView.GetForCurrentView().Id;
Window.Current.Content = frame;
Window.Current.Activate();
ApplicationView.GetForCurrentView().Title = "CompactOverlay Window";
});
bool viewShown = await ApplicationViewSwitcher.TryShowAsViewModeAsync(sliderID, ApplicationViewMode.CompactOverlay);
}