问题描述
这两天在做项目时,遇到一些问题在保存窗口样式时会提示SolidColorBrush为标记为可序列化的错误(用的BinaryFormatter)查了了一些资料并未有什么好办法,最后还是项目经理大大提出了思路,一试果然可以,特此分享一下,希望对遇到此类问题的小伙伴有所帮助。下面直接贴代码:privatestring_background;publicBrushBackground{get{BrushConverterbrushConverter=newBrushConverter();return(Brush)brushConverter.ConvertFromString(_background);}set{_background=value.ToString();}}privatestring_titleFontFamily;publicFontFamilyTitleFontFamily{get{returnnewSystem.Windows.Media.FontFamily(_titleFontFamily);}set{_titleFontFamily=value.ToString();}}其实很简单,就是定义私有变量,然后通过私有变量进行取值,赋值,保存的时候就不会在提示错误了
解决方案
解决方案二:
为啥会报错看看
解决方案三:
BrushoRet=Brushes.Transparent;if(value.ToString()=="name2"){System.Windows.Media.ColorcustomColor=(System.Windows.Media.Color)ColorConverter.ConvertFromString("#9F5178");oRet=newSolidColorBrush(customColor);}returnoRet;
这样也可以。