第二个失败,因为无法在后台线程中创建(新)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索引序列化。
答案 0 :(得分:1)
创建后在画笔上调用Freeze
,它不再是线程关联的。