【问题标题】:Save a Brush to IsolatedStorage将画笔保存到独立存储
【发布时间】:2012-06-09 16:43:28
【问题描述】:

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

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

对于SolidColorBrush,我可以只保存 RGB 颜色的 3 个值,但是如何处理 LinearGradientBrush

我认为可以序列化 Brush 对象,但我真的卡住了。

现在我的问题是:是否可以将 Brush 保存在 IsolatedStorage 中?

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

编辑:

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

【问题讨论】:

    标签: c# wpf isolatedstorage


    【解决方案1】:

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

    由于您的对象集似乎有限,因此应该很容易获取所有属性并手动存储它们。创建可以存储在 Stream 中并充当相应类型的工厂的可序列化帮助器/包装器类可能是一种选择。

    【讨论】:

    【解决方案2】:

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

    【讨论】:

    猜你喜欢
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多