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));
}