问题描述
用于处理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}"/>
您的进程内存仍将增加,但不会增加相同的数量,因为映像仅被加载一次。