From ba913a15b576335f085a0e8c6fea48051d35915d Mon Sep 17 00:00:00 2001 From: gumme <gumme@server.fake> Date: Thu, 12 Jun 2014 11:32:51 +0200 Subject: [PATCH] Added support for using enums. --- .../Tests/Designer/ModelTests.cs | 26 +++++++++++++++++-- .../WpfDesign.XamlDom/Project/XamlDocument.cs | 2 +- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Tests/Designer/ModelTests.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Tests/Designer/ModelTests.cs index a32806a5e9..84bcd70377 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Tests/Designer/ModelTests.cs +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Tests/Designer/ModelTests.cs @@ -668,6 +668,11 @@ namespace ICSharpCode.WpfDesign.Tests.Designer } public void AddNativeTypeAsResource(object component, string expectedXamlValue) + { + AddTypeAsResource(component, expectedXamlValue, "Controls0:", new string[] { "xmlns:Controls0=\"clr-namespace:System;assembly=mscorlib\""} ); + } + + public void AddTypeAsResource(object component, string expectedXamlValue, string typePrefix, String[] additionalXmlns) { DesignItem textBlock = CreateCanvasContext("<TextBlock/>"); DesignItem canvas = textBlock.Parent; @@ -687,11 +692,11 @@ namespace ICSharpCode.WpfDesign.Tests.Designer string typeName = component.GetType().Name; string expectedXaml = "<Canvas.Resources>\n" + - " <Controls0:" + typeName + " x:Key=\"res1\">" + expectedXamlValue + "</Controls0:" + typeName + ">\n" + + " <" + typePrefix + typeName + " x:Key=\"res1\">" + expectedXamlValue + "</" + typePrefix + typeName + ">\n" + "</Canvas.Resources>\n" + "<TextBlock Tag=\"{StaticResource ResourceKey=res1}\" />"; - AssertCanvasDesignerOutput(expectedXaml, textBlock.Context, "xmlns:Controls0=\"clr-namespace:System;assembly=mscorlib\""); + AssertCanvasDesignerOutput(expectedXaml, textBlock.Context, additionalXmlns); AssertLog(""); } @@ -736,6 +741,18 @@ namespace ICSharpCode.WpfDesign.Tests.Designer const int i = 123; AddNativeTypeAsResource(i, "123"); } + + [Test] + public void AddWpfEnumAsResource() + { + AddTypeAsResource(VerticalAlignment.Center, "Center", "", new string[0]); + } + + [Test] + public void AddCustomEnumAsResource() + { + AddTypeAsResource(MyEnum.One, "One", "t:", new string[0]); + } } public class MyMultiConverter : IMultiValueConverter @@ -760,4 +777,9 @@ namespace ICSharpCode.WpfDesign.Tests.Designer set { stringProp = value; } } } + + public enum MyEnum + { + One, Two + } } diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/XamlDocument.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/XamlDocument.cs index 48ee85ec63..b517eea9f0 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/XamlDocument.cs +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/XamlDocument.cs @@ -275,7 +275,7 @@ namespace ICSharpCode.WpfDesign.XamlDom bool IsNativeType(object instance) { - return instance.GetType().Assembly == typeof(String).Assembly; + return instance.GetType().Assembly == typeof(String).Assembly || instance.GetType().IsEnum; } } }