我有一個Metro應用,當用戶使用「分屏」的Windows 8功能(如下圖所示:http://pureinfotech.com/wp-content/uploads/2012/03/metro-app-desktop-split-screen-windows-8.png),將行爲滑稽。是否可以禁用metro應用程序(Windows 8)的分屏視圖?
有沒有一種方法以編程方式從您的應用程序內禁用?到目前爲止我還沒有找到任何東西,但是我發佈這個以防萬一誰知道更好。
在此先感謝!
我有一個Metro應用,當用戶使用「分屏」的Windows 8功能(如下圖所示:http://pureinfotech.com/wp-content/uploads/2012/03/metro-app-desktop-split-screen-windows-8.png),將行爲滑稽。是否可以禁用metro應用程序(Windows 8)的分屏視圖?
有沒有一種方法以編程方式從您的應用程序內禁用?到目前爲止我還沒有找到任何東西,但是我發佈這個以防萬一誰知道更好。
在此先感謝!
不,你不能。
我會建議只是導航到閃屏之類的事情。
看,當你捕捉Windows應用商店會發生什麼。
這在技術上是可行的,但可能不會通過應用程序認證。
您可以嘗試在你的頁面的SizeChanged事件的事件處理程序使用ApplicationView.TryUnsnap() :
在構造函數的說:
Window.Current.SizeChanged += OnSizeChanged;
並實現處理方法:
public void OnSizeChanged(object sender, Windows.UI.Core.WindowSizeChangedEventArgs args)
{
switch (Windows.UI.ViewManagement.ApplicationView.Value)
{
case Windows.UI.ViewManagement.ApplicationViewState.Filled:
VisualStateManager.GoToState(this, "Fill", false);
break;
case Windows.UI.ViewManagement.ApplicationViewState.FullScreenLandscape:
VisualStateManager.GoToState(this, "Full", false);
break;
case Windows.UI.ViewManagement.ApplicationViewState.Snapped:
VisualStateManager.GoToState(this, "Snapped", false);
break;
case Windows.UI.ViewManagement.ApplicationViewState.FullScreenPortrait:
VisualStateManager.GoToState(this, "Portrait", false);
break;
default:
break;
}
this.ShowCurrentViewState();
}
void ShowCurrentViewState()
{
ApplicationViewState currentState = Windows.UI.ViewManagement.ApplicationView.Value;
if (currentState == ApplicationViewState.Snapped)
{
ApplicationView.TryUnsnap() ;
}
}
對不起,我沒有改變,但我保證我會測試和評論,謝謝! – Gaara
我明白了,所以,會有兩種情況考慮: 1)當其他應用程序處於活動狀態(我們稱之爲應用B),和我介紹我的應用程序作爲輔助分割視圖。對於這種情況,我可以使用閃屏,就像Windows Store一樣。你知道他們是如何實現這一目標的?他們如何識別它是否作爲拆分窗口進入? 2)當活動應用程序是我的應用程序,我嘗試輸入應用程序B作爲拆分窗口。我是否也可以識別發生的事情? – Gaara