Flot2011 の回答により、自分のウィンドウが別のフルスクリーン ウィンドウに属するふりをすることができました。不足している部分について知りたい方のために、以下にそれらを示します。 アクティブ化および非アクティブ化されたイベントのハンドラーを実装します
<Window
Activated="DisplayWindow_Activated"
Deactivated="DisplayWindow_Deactivated"
/>
イベントハンドラーは次のようになります
private void DisplayWindow_Activated(object sender, EventArgs e)
{
var screen = System.Windows.Forms.Screen.FromRectangle(
new System.Drawing.Rectangle(
(int)this.Left, (int)this.Top,
(int)this.Width, (int)this.Height));
if( screen.Primary )
Taskbar.Hide();
}
private void DisplayWindow_Deactivated(object sender, EventArgs e)
{
var screen = System.Windows.Forms.Screen.FromRectangle(
new System.Drawing.Rectangle(
(int)this.Left, (int)this.Top,
(int)this.Width, (int)this.Height));
if( screen.Primary )
Taskbar.Show();
}
それで、今何が起こるのですか?フルスクリーンであるため、メイン アプリケーションではタスクバーが消えます。オーバーレイされたウィンドウをクリックすると、タスクバーがアクティブになりますが、プロパティ イベントによって非アクティブになります。したがって、マッシュアップは 1 つのフルスクリーン アプリケーションのように動作します。
一部は、screen
マルチモニターのセットアップを処理することです。(マッシュアップ) アプリケーションがプライマリ モニターで全画面表示されている場合にのみ、タスクバーを非表示にする必要があります。現在のソリューションでは、WPF ウィンドウと基礎となるフルスクリーン アプリケーションが同じ画面上にあることを前提としています。
これらのものを使用する場合は、およびへのscreen
参照を含めることを忘れないでください。名前空間が .net のものと衝突するため、使用法はここではあまり良い考えではありません。System.Drawing
System.Window.Forms