XAMLベースのGUIで新しいプロジェクトを開始しましたが、問題があります。別のウィンドウやメッセージボックスを開いたり、Get-Credential
に電話をかけたりしても、メインウィンドウはバックグラウンドで(他の開いているウィンドウの後ろに)消えます。ウィンドウを元に戻す
ウィンドウを上に戻す簡単な方法はありますか? Get-Process
などで多くのソリューションを見つけましたが、この単純な問題では複雑に思えます。
XAMLベースのGUIで新しいプロジェクトを開始しましたが、問題があります。別のウィンドウやメッセージボックスを開いたり、Get-Credential
に電話をかけたりしても、メインウィンドウはバックグラウンドで(他の開いているウィンドウの後ろに)消えます。ウィンドウを元に戻す
ウィンドウを上に戻す簡単な方法はありますか? Get-Process
などで多くのソリューションを見つけましたが、この単純な問題では複雑に思えます。
もSetWindowsPos function使用して、...それでも
あまりにも複雑されることがあります。
$User32 = Add-Type -Debug:$False -MemberDefinition '
[DllImport("user32.dll")] public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X,int Y, int cx, int cy, uint uFlags);
' -Name "User32Functions" -namespace User32Functions -PassThru
$Xaml = ...
$Window = [Windows.Markup.XamlReader]::Load((New-Object System.Xml.XmlNodeReader($Xaml)))
$Handle = (New-Object System.Windows.Interop.WindowInteropHelper($Window)).Handle
[Void]$User32::SetWindowPos($Handle, -1, 0, 0, 0, 0, 0x53)
これを試したが、部分的にしか働かなかった。それはISEの唯一の問題であるようです。私が通常のPowerShellコンソールからスクリプトを起動すると、それはうまくいった。 –
[たぶん関連](https://superuser.com/a/769740/156043)。 –