Question

The second fails as cannot create (new) a UI object in a background thread
(well you can create it but you can't use it)
Error message:
Cannot use a DependencyObject that belongs to a different thread than its parent Freezable.

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))));

These colors all start System.Windows.Media.Brushes

Adding a feature to let the user save the search so need to persist the color to the database.
Right now I am using ToString to save the Hex color
The problem with that is the New
Is there way to serialize a System.Windows.Media.Brush such that I don't have to new it when I unserialize?

I only use like 8 brushes so I as thinking of putting them in an Enum and serialize by Enum index.

Was it helpful?

Solution

Call Freeze on the brush after you create it and it is no longer thread-affinitized.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top