一切都很好,但是有问题。内部UI显示在自定义WPF UI后面。
如何设置内部UI显示在窗口顶部?
单击“安装”按钮时,我尝试最小化WPF UI。是的,WPF用户界面将最小化,几秒钟后内部用户界面也会显示......它也会显示最小化的窗口状态。
我的bundle.wxs
:
<BootstrapperApplicationRef Id="ManagedBootstrapperApplicationHost">
<PayloadGroupRef Id="InstallerPayload"/>
</BootstrapperApplicationRef>
<Chain>
<PackageGroupRef Id="NetFx40Full"/>
<PackageGroupRef Id="InstallerPackages"></PackageGroupRef>
</Chain>
</Bundle>
<Fragment>
<PayloadGroup Id="InstallerPayload">
<Payload SourceFile="..\CustomBootstrapper\bin\release\MahApps.Metro.dll"/>
<Payload SourceFile="..\CustomBootstrapper\bin\release\System.Windows.Interactivity.dll"/>
<Payload SourceFile ="..\CustomBootstrapper\bin\release\CustomBootstrapper.dll"/>
<Payload SourceFile="..\CustomBootstrapper\BootstrapperCore.config" />
<Payload SourceFile="C:\Program Files (x86)\WiX Toolset v3.7\SDK\Microsoft.Deployment.WindowsInstaller.dll"/>
</PayloadGroup>
</Fragment>
<Fragment>
<PackageGroup Id="InstallerPackages">
<!-- <MsiPackage Id="CRMInstall"
Vital="yes"
Name="Packages\SetupProject1.msi"
SourceFile="Packages\SetupProject1.msi"
DisplayInternalUI="yes"> -->
<MsiPackage Id="CRMInstall"
Vital="yes"
Name="Packages\StandardSetup.msi"
SourceFile="..\StandardSetup\bin\Release\StandardSetup.msi"
DisplayInternalUI="yes">
</MsiPackage>
</PackageGroup>
</Fragment>
..
..
答案 0 :(得分:1)
当您致电Engine.Apply()
时,请确保将句柄传递给正在显示的WPF Window
。它应该是这样的:
var mainWindowHandle= new WindowInteropHelper(mainWindow).EnsureHandle();
Engine.Apply(mainWindowHandle);
其中mainWindow是继承自WPF Window
类的类。