窗口背景图片使进程内存使用量增加了三倍

问题描述

用于处理Winforms,最近开始学习wpf。 对于我的主菜单窗口和一些选择性的窗口,我使用自定义图像作为窗口背景

<Window.Background>
    <ImageBrush ImageSource="/Views/1295.jpg" Stretch="UniformToFill"/>
</Window.Background>

该图像只有760kb,但是只要运行我的应用程序并加载仅包含5个按钮的第一个窗口,它就会从不使用背景图像时的100MB进程内存变为使用时的350MB。

该如何解决?还是无法解决? 我具有类似布局的winform应用程序仅使用30MB,WPF应该这么大吗?

解决方法

如果多次使用同一张图片,则最好将其声明为这样的资源。

<Window.Resources>
    <ImageBrush x:Key="imageBrush" ImageSource="/Views/1295.jpg" Stretch="UniformToFill"/>
</Window.Resources>

然后将背景属性设置为此资源。

<Button Content="Click me" Background="{DynamicResource imageBrush}"/>

您的进程内存仍将增加,但不会增加相同的数量,因为映像仅被加载一次。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...