我使用IsolatedStorage
使用approach保存了我的WPF应用程序的窗口位置(Windows.Top
和Window.Left
)。
现在我想在IsolatedStorage中保存一个Brush
。根据用户选择,它可以是SolidColorBrush
或LinearGradientBrush
。
对于SolidColorBrush
我只能保存RGB颜色的3个值,但是如何看待LinearGradientBrush
?
我认为序列化一个Brush
对象是可能的,但我真的被卡住了。
现在我的问题是:可以将画笔保存在IsolatedStorage
?
我选择使用IsolatedStorage
因为我的应用程序需要是一个单独的exe,没有安装(它通过自定义软件分发程序分发给客户端),通常是从桌面执行的。该应用程序为用户提供有关Active Directory用户的正确凭据信息。
编辑:
欢迎提供保存用户自定义的任何其他解决方案!
答案 0 :(得分:-1)
画笔和其他半原生绘图对象不可序列化。因此,您将无法将它们存储在任何持久性或进程外存储中。
由于看起来你有一组有限的对象,所以应该很容易获得所有属性并手工存储它们。创建可存储在Stream中的可序列化帮助程序/包装类,并作为相应类型的工厂可能是一种选择。
答案 1 :(得分:-1)
首先,我不会使用IsolatedStorage,而是使用用户范围的设置来存储此类信息。其次,如果您无法序列化画笔,您可以保存用户输入的任何信息以选择或创建画笔:如果他们只是从现有资源中选择画笔,请保存这些资源的键,如果他们可以输入rgb值选择一种颜色,保存rgb值,以及他们为定义LinearGradientBrush所做的一切,只需保存它们的输入值。