Ejemplo n.º 1
0
        private XamlFileDefinition Visit(XamlXmlReader reader, string file)
        {
            WriteState(reader);

            var xamlFile = new XamlFileDefinition(file);

            do
            {
                switch (reader.NodeType)
                {
                case XamlNodeType.StartObject:
                    _depth++;
                    xamlFile.Objects.Add(VisitObject(reader, null));
                    break;

                case XamlNodeType.NamespaceDeclaration:
                    xamlFile.Namespaces.Add(reader.Namespace);
                    break;

                default:
                    throw new InvalidOperationException();
                }
            }while (reader.Read());

            return(xamlFile);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Gets the name of a GlobalStaticResources property associated with a ResourceDictionary.Source designation. Throws an exception if none is found.
        /// </summary>
        /// <param name="originDictionary">The file containing the XAML</param>
        /// <param name="source">The ResourceDictionary.Source value</param>
        internal string FindTargetPropertyForMergedDictionarySource(XamlFileDefinition originDictionary, string source)
        {
            var targetSource   = GetSourceLink(originDictionary);
            var absoluteSource = ResolveAbsoluteSource(targetSource, source);

            if (_rdMap.TryGetValue(absoluteSource, out var xamlFileDefinition))
            {
                // TODO: check if it actually corresponds to a ResourceDictionary
                return(ConvertIdToResourceDictionaryProperty(xamlFileDefinition.UniqueID));
            }

            return(null);
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Should this Xaml be included when defining default styles? Outside of Uno this is always true. In Uno, this excludes WinUI Fluent resources (which consumer code accesses via XamlControlsResources)
 /// </summary>
 private bool IsIncludedResource(XamlFileDefinition xamlFileDefinition, XamlGlobalStaticResourcesMap map) => !IsUnoAssembly ||
 _nonSystemResources.None(s => map.GetSourceLink(xamlFileDefinition).EndsWith(s));
Ejemplo n.º 4
0
 private bool IsResourceDictionary(XamlFileDefinition fileDefinition) => fileDefinition.Objects.FirstOrDefault()?.Type.Name == "ResourceDictionary";
Ejemplo n.º 5
0
 /// <summary>
 /// Get the appropriate source link for a given XAML file.
 /// </summary>
 internal string GetSourceLink(XamlFileDefinition xamlFileDefinition)
 {
     return(_rdMap.FirstOrDefault(kvp => kvp.Value == xamlFileDefinition).Key);            //TODO: this is O(n), is it an actual perf issue?
 }