diff --git a/.gitignore b/.gitignore index 748683d..2325b6e 100644 --- a/.gitignore +++ b/.gitignore @@ -172,3 +172,4 @@ UpgradeLog*.htm # Microsoft Fakes FakesAssemblies/ +/.vs/EmptyKeys.UserInterface.Generator/v15/Server/sqlite3/db.lock diff --git a/.vs/EmptyKeys.UserInterface.Generator/v15/Server/sqlite3/storage.ide b/.vs/EmptyKeys.UserInterface.Generator/v15/Server/sqlite3/storage.ide new file mode 100644 index 0000000..56758a8 Binary files /dev/null and b/.vs/EmptyKeys.UserInterface.Generator/v15/Server/sqlite3/storage.ide differ diff --git a/.vs/EmptyKeys.UserInterface.Generator/v15/Server/sqlite3/storage.ide-shm b/.vs/EmptyKeys.UserInterface.Generator/v15/Server/sqlite3/storage.ide-shm new file mode 100644 index 0000000..bfed8f3 Binary files /dev/null and b/.vs/EmptyKeys.UserInterface.Generator/v15/Server/sqlite3/storage.ide-shm differ diff --git a/.vs/EmptyKeys.UserInterface.Generator/v15/Server/sqlite3/storage.ide-wal b/.vs/EmptyKeys.UserInterface.Generator/v15/Server/sqlite3/storage.ide-wal new file mode 100644 index 0000000..204ad65 Binary files /dev/null and b/.vs/EmptyKeys.UserInterface.Generator/v15/Server/sqlite3/storage.ide-wal differ diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite new file mode 100644 index 0000000..c9e7a0c Binary files /dev/null and b/.vs/slnx.sqlite differ diff --git a/UIGenerator/ResourceDictionaryGenerator.cs b/UIGenerator/ResourceDictionaryGenerator.cs index 3c40bd1..1f71d21 100644 --- a/UIGenerator/ResourceDictionaryGenerator.cs +++ b/UIGenerator/ResourceDictionaryGenerator.cs @@ -25,7 +25,8 @@ public class ResourceDictionaryGenerator /// Type of the class. /// The initialize method. /// The field reference. - public void Generate(ResourceDictionary dictionary, CodeTypeDeclaration classType, CodeMemberMethod initMethod, CodeExpression fieldReference) + /// The parent element. + public void Generate(ResourceDictionary dictionary, CodeTypeDeclaration classType, CodeMemberMethod initMethod, CodeExpression fieldReference, FrameworkElement element = null) { foreach (var mergedDict in dictionary.MergedDictionaries) { @@ -60,7 +61,11 @@ public void Generate(ResourceDictionary dictionary, CodeTypeDeclaration classTyp initMethod.Statements.Add(new CodeCommentStatement(comment)); CodeExpression keyExpression = CodeComHelper.GetResourceKeyExpression(resourceKey); - CodeExpression valueExpression = valueGenerator.ProcessGenerators(classType, initMethod, resourceValue, "r_" + uniqueId, dictionary); + string basename; + if (element != null) basename = element.Name + "_r"; + else basename = "r"; + + CodeExpression valueExpression = valueGenerator.ProcessGenerators(classType, initMethod, resourceValue, basename + uniqueId, dictionary); if (valueExpression != null) { diff --git a/UIGenerator/TypeGenerator.cs b/UIGenerator/TypeGenerator.cs index b86715e..d8c240e 100644 --- a/UIGenerator/TypeGenerator.cs +++ b/UIGenerator/TypeGenerator.cs @@ -295,7 +295,7 @@ public CodeExpression ProcessGenerators(object source, CodeTypeDeclaration class resourcesMethod.Parameters.Add(new CodeParameterDeclarationExpression("UIElement", "elem")); classType.Members.Add(resourcesMethod); resourcesGenerator.Generate(elem.Resources, classType, resourcesMethod, - new CodeFieldReferenceExpression(new CodeVariableReferenceExpression("elem"), "Resources")); + new CodeFieldReferenceExpression(new CodeVariableReferenceExpression("elem"), "Resources"), elem); method.Statements.Add(new CodeMethodInvokeExpression(null,resourcesMethod.Name, parent)); }