2017-06-07 4 views
0

XAMLベースのGUIで新しいプロジェクトを開始しましたが、問題があります。別のウィンドウやメッセージボックスを開いたり、Get-Credentialに電話をかけたりしても、メインウィンドウはバックグラウンドで(他の開いているウィンドウの後ろに)消えます。ウィンドウを元に戻す

ウィンドウを上に戻す簡単な方法はありますか? Get-Processなどで多くのソリューションを見つけましたが、この単純な問題では複雑に思えます。

+0

[たぶん関連](https://superuser.com/a/769740/156043)。 –

答えて

0

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) 
+0

これを試したが、部分的にしか働かなかった。それはISEの唯一の問題であるようです。私が通常のPowerShellコンソールからスクリプトを起動すると、それはうまくいった。 –