C# WPF获取运行时创建的控件的xaml

C# WPF获取运行时创建的控件的xaml,c#,json,wpf,xaml,C#,Json,Wpf,Xaml,与VisualStudio或任何其他IDE一样,必须保存并检索选项卡页中动态创建的控件。我尝试了将mycontrolsclass转换为json的方法,该方法在列表中动态创建控件,json将保存到数据库并检索回来。当整个mycontrolsclass被序列化为json时,会发生stackoverflow错误。因此,考虑将xaml内容添加到数据库中。一些教程有助于获取wpf窗口物理文件的xaml内容,但不知道如何从动态创建控件的窗口获取xaml内容 我也尝试过在LogicalTreeHelper类中

与VisualStudio或任何其他IDE一样,必须保存并检索选项卡页中动态创建的控件。我尝试了将mycontrolsclass转换为json的方法,该方法在列表中动态创建控件,json将保存到数据库并检索回来。当整个mycontrolsclass被序列化为json时,会发生stackoverflow错误。因此,考虑将xaml内容添加到数据库中。一些教程有助于获取wpf窗口物理文件的xaml内容,但不知道如何从动态创建控件的窗口获取xaml内容


我也尝试过在LogicalTreeHelper类中循环,但我无法获得确切的xaml。我的方法正确吗?或者如何获得动态创建控件的xaml?

我想这就是您要寻找的。

类似。您还可以分别搜索“xaml加载运行时”和“xaml保存运行时”(应该会引导您找到相关问题)。这很有帮助,但xaml序列化错误如下所示,我无法克服。PresentationFramework.dll中发生类型为“System.InvalidOperationException”的未处理异常。其他信息:无法序列化非公共类型“FormsSite.CustomControl.CustomTabItem”。@ArulManivannan只需将
FormsSite.CustomControl.CustomTabItem
public,这应该可以工作。工作起来很有魅力,对于在之前的评论中指出这个错误,他犹豫不决。现在你的评论也帮我节省了一些时间。谢谢