从BackGroundWorker创建/访问画笔

时间:2013-07-05 21:40:05

标签: .net wpf serialization backgroundworker brush

第二个失败,因为无法在后台线程中创建(新)UI对象
(你可以创造它但你不能使用它)
错误信息:
不能使用属于与其父Freezable不同的线程的DependencyObject。

docTextAndHighlight.WordHighlight.Add(wordPos, new HightLight(w.Len, System.Windows.Media.Brushes.Salmon));


docTextAndHighlight.WordHighlight.Add(wordPos, new HightLight(w.Len, new SolidColorBrush((Color)ColorConverter.ConvertFromString(w.Highlight))));

这些颜色都启动System.Windows.Media.Brushes

添加一项功能让用户保存搜索,因此需要将颜色保留在数据库中 现在我使用ToString保存Hex颜色
问题是新的问题 有没有办法序列化System.Windows.Media.Brush,以便在我反序列化时不需要新建它?

我只使用8个画笔,因此我想将它们放入Enum并按Enum索引序列化。

1 个答案:

答案 0 :(得分:1)

创建后在画笔上调用Freeze,它不再是线程关联的。