我正在尝试保存XAMLUIElement的属性(Grid、Button、TextBlock等),并通过保存整个控件再次恢复它。。
所以我的第一个选择是将控件JSONize-serialize并保存为字符串,然后通过Newtonsoft中的JsonConvert方法将其还原
这是我的代码:
Grid grid = new Grid { Background = new SolidColorBrush(Colors.Red), Margin = new Thickness(0, 5, 0, 0) };
string jsonStringGrid = JsonConvert.SerializeObject(grid);
但是,一个奇怪的例外是:
“System.StackOverflowException”类型的未处理异常
发生在mscorlib.ni.dll中
然后我尝试用我想要的属性创建一个类,所以不需要序列化整个网格,只需要我的新类:
public class MyGridClass
{
public Brush Background { get; set; }
public Thickness Margin { get; set; }
}
没有复杂的类型和属性……但同样的异常再次发生。
然后我试图改变
Brush
键入到
string
用“Red”来测试它,我试着序列化它,它正在工作!!
画笔类型有什么问题?
有没有办法保存XAML控件并在不手动序列化的情况下将其还原?
我不知道我无法解析或序列化的具体属性是什么,但如果有这些属性的列表,那对我来说会很好。。