将画笔保存到IsolatedStorage

时间:2012-06-08 22:26:34

标签: c# wpf isolatedstorage

我使用IsolatedStorage使用approach保存了我的WPF应用程序的窗口位置(Windows.TopWindow.Left)。

现在我想在IsolatedStorage中保存一个Brush。根据用户选择,它可以是SolidColorBrushLinearGradientBrush

对于SolidColorBrush我只能保存RGB颜色的3个值,但是如何看待LinearGradientBrush

我认为序列化一个Brush对象是可能的,但我真的被卡住了。

现在我的问题是:可以将画笔保存在IsolatedStorage

我选择使用IsolatedStorage因为我的应用程序需要是一个单独的exe,没有安装(它通过自定义软件分发程序分发给客户端),通常是从桌面执行的。该应用程序为用户提供有关Active Directory用户的正确凭据信息。

编辑:

欢迎提供保存用户自定义的任何其他解决方案!

2 个答案:

答案 0 :(得分:-1)

画笔和其他半原生绘图对象不可序列化。因此,您将无法将它们存储在任何持久性或进程外存储中。

由于看起来你有一组有限的对象,所以应该很容易获得所有属性并手工存储它们。创建可存储在Stream中的可序列化帮助程序/包装类,并作为相应类型的工厂可能是一种选择。

答案 1 :(得分:-1)

首先,我不会使用IsolatedStorage,而是使用用户范围的设置来存储此类信息。其次,如果您无法序列化画笔,您可以保存用户输入的任何信息以选择或创建画笔:如果他们只是从现有资源中选择画笔,请保存这些资源的键,如果他们可以输入rgb值选择一种颜色,保存rgb值,以及他们为定义LinearGradientBrush所做的一切,只需保存它们的输入值。