WPF 开发遇到的问题
1 应用被最小化点击任务栏图标无法展开(最大化)显示应用
1.1 问题原因:主窗体 ResizeMode="CanMinimize",子窗体 ResizeMode="NoResize"。当主窗体和子窗体一起显示的之后。应用被最小化,点击任务栏上的图标无法展开(最大化)显示应用
解决方案:将子窗体 ResizeMode="NoResize" 修改为 ResizeMode="CanMinimize" ,却不能以管理员运行
1.2 以管理员身份运行,
1.2.1 全屏主窗体 WindowState="Maximized" WindowStyle="None" ResizeMode="CanMinimize" 子窗体同时显示 。点击侧边栏 主页 。最小化之后 就无法在任务栏打开,使用Win+M 可以,但是不能再调用User32设置窗体最小化显示
1.2.2 win + m 无法将显示模态最小化
1.2.3 全屏主窗体 WindowState="Maximized" WindowStyle="None" ResizeMode="CanMinimize" 同时显示,使用Win+M 。先最小化,再点击侧边栏 主页 ,最小化之后可以在任务栏打开,但是子窗体是在左下角最小化,需要监听主窗体的VisibilityChange 事件来还原子窗体
2
使用AllowsTransparency = true ,可避免程序启动白板或黑屏。但使用之后性能不好。故采用 WindowChrome.WindowChrome 代替。
<!--修复调用AllowsTransparency的异常,优先使用WindowChrome,解决点开应用程序出现白屏或黑屏的问题-->
<WindowChrome.WindowChrome>
<WindowChrome GlassFrameThickness="-1" CaptionHeight="0" UseAeroCaptionButtons="False" CornerRadius="0" NonClientFrameEdges="None" ResizeBorderThickness="0"/>
</WindowChrome.WindowChrome>
但需要注意的是,使用WindowChrome.WindowChrome时, ResizeMode 不能设置为CanResize ,否则 启动会白屏以及使窗体向外扩,可以使用CanMinimize避免上面两个问题。