public static string GetStringFromExpression(DocumentNode expression, DocumentNode parentNode) { if (parentNode != null) { XamlDocument xamlDocument = parentNode.DocumentRoot as XamlDocument; if (xamlDocument != null && xamlDocument.DocumentContext != null) { string str = XamlSerializer.SerializeValue((IDocumentRoot)xamlDocument, (IXamlSerializerFilter) new DefaultXamlSerializerFilter(), expression, CultureInfo.CurrentCulture); if (str != null) { return(str); } } } return(string.Empty); }
private static bool NodeTreesAreEquivalent(SceneViewModel viewModel, DocumentNode nodeA, DocumentNode nodeB) { nodeA = nodeA.Clone(viewModel.DocumentRoot.DocumentContext); ResourceHelper.StripOffFormatting(nodeA); nodeB = nodeB.Clone(viewModel.DocumentRoot.DocumentContext); ResourceHelper.StripOffFormatting(nodeB); DocumentCompositeNode node1 = nodeA.Context.CreateNode(PlatformTypes.DictionaryEntry); node1.Properties[node1.PlatformMetadata.KnownProperties.DictionaryEntryValue] = nodeA; DocumentCompositeNode node2 = nodeB.Context.CreateNode(PlatformTypes.DictionaryEntry); node2.Properties[node2.PlatformMetadata.KnownProperties.DictionaryEntryValue] = nodeB; XamlSerializer xamlSerializer = new XamlSerializer((IDocumentRoot)viewModel.XamlDocument, (IXamlSerializerFilter) new DefaultXamlSerializerFilter()); return(xamlSerializer.Serialize(nodeA).Equals(xamlSerializer.Serialize(nodeB))); }