コード例 #1
0
ファイル: ConverterTests.cs プロジェクト: kazyx/SvgToXaml
 public void ConvertFileToDrawingGroupWithRuntime(string filename)
 {
     var settings = new WpfDrawingSettings
     {
         IncludeRuntime = true,
         TextAsGeometry = false,
         OptimizePath = true,
     };
     var resKeyInfo = new ResKeyInfo { Prefix = "Prefix" };
     var xaml = ConverterLogic.SvgFileToXaml(filename, ResultMode.DrawingGroup, resKeyInfo, settings);
     Console.WriteLine(xaml);
 }
コード例 #2
0
ファイル: ConverterTests.cs プロジェクト: kazyx/SvgToXaml
 public void ConvertFileToDrawingGroup2()
 {
     var settings = new WpfDrawingSettings
     {
         IncludeRuntime = false,
         TextAsGeometry = false,
         OptimizePath = true,
     };
     var resKeyInfo = new ResKeyInfo { Prefix = "Prefix" };
     var xaml = ConverterLogic.SvgFileToXaml("TestFiles\\3d-view-icon.svg", ResultMode.DrawingGroup, resKeyInfo, settings);
     Console.WriteLine(xaml);
     string expected = File.ReadAllText("TestFiles\\3d-view-icon_expected.txt");
     xaml.Should().Be(expected);
 }
コード例 #3
0
ファイル: ConverterLogic.cs プロジェクト: kazyx/SvgToXaml
 public static object ConvertSvgToObject(string filepath, ResultMode resultMode, WpfDrawingSettings wpfDrawingSettings, out string name, ResKeyInfo resKeyInfo)
 {
     var dg = ConvertFileToDrawingGroup(filepath, wpfDrawingSettings);
     var elementName = Path.GetFileNameWithoutExtension(filepath);
     switch (resultMode)
     {
         case ResultMode.DrawingGroup:
             name = BuildDrawingGroupName(elementName, resKeyInfo);
             return dg;
         case ResultMode.DrawingImage:
             name = BuildDrawingImageName(elementName, resKeyInfo);
             return DrawingToImage(dg);
         default:
             throw new ArgumentOutOfRangeException("resultMode");
     }
 }
コード例 #4
0
 public static string SvgDirToXaml(string folder, ResKeyInfo resKeyInfo)
 {
     return(SvgDirToXaml(folder, resKeyInfo, null));
 }
コード例 #5
0
        private static void ReplaceBrushesInDrawingGroups(XElement rootElement, ResKeyInfo resKeyInfo)
        {
            //three steps of colouring: 1. global Color, 2, global ColorBrush, 3. local ColorBrush
            //<Color x:Key="ImagesColor1">#FF000000</Color>
            //<SolidColorBrush x:Key="ImagesColorBrush1" Color="{DynamicResource ImagesColor1}" />
            //<SolidColorBrush x:Key="JOG_BrushColor1" Color="{Binding Color, Source={StaticResource ImagesColorBrush1}}" />

            var allBrushes = CollectBrushAttributesWithColor(rootElement)
                             .Select(a => a.Value)
                             .Distinct(StringComparer.InvariantCultureIgnoreCase) //same Color only once
                             .Select((s, i) => new
            {
                ResKey1 = BuildColorName(i + 1, resKeyInfo),
                ResKey2 = BuildColorBrushName(i + 1, resKeyInfo),
                Color   = s
            })     //add numbers
                             .ToList();

            //building global Elements like: <SolidColorBrush x:Key="ImagesColorBrush1" Color="{DynamicResource ImagesColor1}" />
            rootElement.AddFirst(allBrushes
                                 .Select(brush => new XElement(nsDef + "SolidColorBrush",
                                                               new XAttribute(nsx + "Key", brush.ResKey2),
                                                               new XAttribute("Color", $"{{DynamicResource {brush.ResKey1}}}"))));

            //building global Elements like: <Color x:Key="ImagesColor1">#FF000000</Color>
            rootElement.AddFirst(allBrushes
                                 .Select(brush => new XElement(nsDef + "Color",
                                                               new XAttribute(nsx + "Key", brush.ResKey1),
                                                               brush.Color)));

            var colorKeys = allBrushes.ToDictionary(brush => brush.Color, brush => brush.ResKey2);

            //building local Elements
            var drawingGroups = rootElement.Elements(nsDef + "DrawingGroup").ToList();

            foreach (var node in drawingGroups)
            {
                //get Name of DrawingGroup
                var keyDg        = node.Attribute(nsx + "Key").Value;
                var elemName     = GetElemNameFromResKey(keyDg, resKeyInfo);
                var elemBaseName = elemName.Replace("DrawingGroup", "");

                var brushAttributes = CollectBrushAttributesWithColor(node).ToList();

                foreach (var brushAttribute in brushAttributes)
                {
                    var    color = brushAttribute.Value;
                    string resKeyColor;
                    if (colorKeys.TryGetValue(color, out resKeyColor))
                    {   //global color found
                        //build resourcename
                        var nameBrush = brushAttributes.Count > 1
                            ? $"{elemBaseName}Color{brushAttributes.IndexOf(brushAttribute) + 1}Brush"
                            : $"{elemBaseName}ColorBrush"; //dont add number if only one color
                        var resKeyBrush = BuildResKey(nameBrush, resKeyInfo);
                        node.AddBeforeSelf(new XElement(nsDef + "SolidColorBrush",
                                                        new XAttribute(nsx + "Key", resKeyBrush),
                                                        new XAttribute("Color", $"{{Binding Color, Source={BuildResKeyReference(resKeyColor, false)}}}")));
                        //set brush value as Reference
                        //  <GeometryDrawing Brush="{DynamicResource {x:Static nsname:Test.cloud-3-iconBrushColor}}" ... />
                        brushAttribute.Value = BuildResKeyReference(resKeyBrush, true);
                    }
                }
            }
        }
コード例 #6
0
ファイル: SvgImagesViewModel.cs プロジェクト: kazyx/SvgToXaml
        private void ExportDirExecute()
        {
            string outFileName = Path.GetFileNameWithoutExtension(CurrentDir) + ".xaml"; 
            var saveDlg = new SaveFileDialog {AddExtension = true, DefaultExt = ".xaml", Filter = "Xaml-File|*.xaml", InitialDirectory = CurrentDir, FileName = outFileName};
            if (saveDlg.ShowDialog() == DialogResult.OK)
            {
                string namePrefix = null;

                bool useComponentResKeys = false;
                string nameSpaceName = null;
                var nameSpace = Microsoft.VisualBasic.Interaction.InputBox("Enter a NameSpace for using static ComponentResKeys (or leave empty to not use it)", "NameSpace");
                if (!string.IsNullOrWhiteSpace(nameSpace))
                {
                    useComponentResKeys = true;
                    nameSpaceName =
                        Microsoft.VisualBasic.Interaction.InputBox(
                            "Enter a Name of NameSpace for using static ComponentResKeys", "NamespaceName");
                }
                else
                {
                    namePrefix = Microsoft.VisualBasic.Interaction.InputBox("Enter a namePrefix (or leave empty to not use it)", "Name Prefix");
                    if (string.IsNullOrWhiteSpace(namePrefix))
                        namePrefix = null;

                }

                outFileName = Path.GetFullPath(saveDlg.FileName);
                var resKeyInfo = new ResKeyInfo
                {
                    XamlName = Path.GetFileNameWithoutExtension(outFileName),
                    Prefix = namePrefix,
                    UseComponentResKeys = useComponentResKeys,
                    NameSpace = nameSpace,
                    NameSpaceName = nameSpaceName,

                };
                File.WriteAllText(outFileName, ConverterLogic.SvgDirToXaml(CurrentDir, resKeyInfo));

                BuildBatchFile(outFileName, resKeyInfo);
            }
        }
コード例 #7
0
ファイル: ConverterLogic.cs プロジェクト: kazyx/SvgToXaml
        private static void ReplaceBrushesInDrawingGroups(XElement rootElement, ResKeyInfo resKeyInfo)
        {
            //three steps of colouring: 1. global Color, 2, global ColorBrush, 3. local ColorBrush
            //<Color x:Key="ImagesColor1">#FF000000</Color>
            //<SolidColorBrush x:Key="ImagesColorBrush1" Color="{DynamicResource ImagesColor1}" />
            //<SolidColorBrush x:Key="JOG_BrushColor1" Color="{Binding Color, Source={StaticResource ImagesColorBrush1}}" />

            var allBrushes = CollectBrushAttributesWithColor(rootElement)
                .Select(a => a.Value)
                .Distinct(StringComparer.InvariantCultureIgnoreCase) //same Color only once
                .Select((s, i) => new
                {
                    ResKey1 = BuildColorName(i+1, resKeyInfo), 
                    ResKey2 = BuildColorBrushName(i + 1, resKeyInfo), 
                    Color = s
                }) //add numbers
                .ToList();

            //building global Elements like: <SolidColorBrush x:Key="ImagesColorBrush1" Color="{DynamicResource ImagesColor1}" />
            rootElement.AddFirst(allBrushes
                .Select(brush => new XElement(nsDef + "SolidColorBrush", 
                    new XAttribute(nsx + "Key", brush.ResKey2),
                    new XAttribute("Color", $"{{DynamicResource {brush.ResKey1}}}"))));

            //building global Elements like: <Color x:Key="ImagesColor1">#FF000000</Color>
            rootElement.AddFirst(allBrushes
                .Select(brush => new XElement(nsDef + "Color", 
                    new XAttribute(nsx + "Key", brush.ResKey1),
                    brush.Color)));

            var colorKeys = allBrushes.ToDictionary(brush => brush.Color, brush => brush.ResKey2);

            //building local Elements
            var drawingGroups = rootElement.Elements(nsDef + "DrawingGroup").ToList();
            foreach (var node in drawingGroups)
            {
                //get Name of DrawingGroup
                var keyDg = node.Attribute(nsx + "Key").Value;
                var elemName = GetElemNameFromResKey(keyDg, resKeyInfo);
                var elemBaseName = elemName.Replace("DrawingGroup", "");
                
                var brushAttributes = CollectBrushAttributesWithColor(node).ToList();
                
                foreach (var brushAttribute in brushAttributes)
                {
                    var color = brushAttribute.Value;
                    string resKeyColor;
                    if (colorKeys.TryGetValue(color, out resKeyColor))
                    {   //global color found
                        
                        //build resourcename
                        var nameBrush = brushAttributes.Count > 1
                            ? $"{elemBaseName}Color{brushAttributes.IndexOf(brushAttribute) + 1}Brush"
                            : $"{elemBaseName}ColorBrush"; //dont add number if only one color
                        var resKeyBrush = BuildResKey(nameBrush, resKeyInfo);
                        node.AddBeforeSelf(new XElement(nsDef + "SolidColorBrush", 
                            new XAttribute(nsx + "Key", resKeyBrush), 
                            new XAttribute("Color", $"{{Binding Color, Source={BuildResKeyReference(resKeyColor, false)}}}") ));
                        //set brush value as Reference
                        //  <GeometryDrawing Brush="{DynamicResource {x:Static nsname:Test.cloud-3-iconBrushColor}}" ... />
                        brushAttribute.Value = BuildResKeyReference(resKeyBrush, true);
                    }
                }
            }
        }
コード例 #8
0
ファイル: ConverterTests.cs プロジェクト: kazyx/SvgToXaml
 public void BuildDrawingImageName_returns_simpleName()
 {
     var resKeyInfo = new ResKeyInfo
     {
         UseComponentResKeys = false,
         Prefix = null
     };
     ConverterLogic.BuildDrawingImageName("ElementName", resKeyInfo).Should().Be("ElementNameDrawingImage");
 }
コード例 #9
0
ファイル: ConverterLogic.cs プロジェクト: kazyx/SvgToXaml
 internal static ResourceDictionary ConvertFilesToResourceDictionary(IEnumerable<string> files, WpfDrawingSettings wpfDrawingSettings, ResKeyInfo resKeyInfo)
 {
     var dict = new ResourceDictionary();
     foreach (var file in files)
     {
         var drawingGroup = ConvertFileToDrawingGroup(file, wpfDrawingSettings);
         var elementName = Path.GetFileNameWithoutExtension(file);
         var keyDg = BuildDrawingGroupName(elementName, resKeyInfo);
         dict[keyDg] = drawingGroup;
     }
     return dict;
 }
コード例 #10
0
ファイル: ConverterTests.cs プロジェクト: kazyx/SvgToXaml
 public void SvgDirToXaml_with_defaultSettingsTest()
 {
     var resKeyInfo = new ResKeyInfo { XamlName = "Test", Prefix = "NamePrefix" };
     var xaml = ConverterLogic.SvgDirToXaml("TestFiles\\", resKeyInfo, null);
     Console.WriteLine(xaml);
 }
コード例 #11
0
ファイル: ConverterLogic.cs プロジェクト: kazyx/SvgToXaml
        private static void ExtractGeometries(XElement drawingGroupElement, ResKeyInfo resKeyInfo)
        {
            //get Name of DrawingGroup
            var nameDg = drawingGroupElement.Attribute(nsx + "Key").Value;
            var name = nameDg.Replace("DrawingGroup", "");
            name = GetElemNameFromResKey(name, resKeyInfo);

            //find this: <GeometryDrawing Brush="{DynamicResource _3d_view_icon_BrushColor}" Geometry="F1 M512,512z M0,0z M436.631,207.445L436.631,298.319z" />
            //var geos = drawingGroupElement.XPathSelectElements(".//defns:GeometryDrawing/@defns:Geometry", _nsManager).ToList();
            var geos = drawingGroupElement.Descendants()
                .Where(e => e.Name.LocalName == "GeometryDrawing")
                .SelectMany(e => e.Attributes())
                .Where(a => a.Name.LocalName == "Geometry")
                .ToList();
            foreach (var geo in geos)
            {
                //build resourcename
                int? no = geos.Count > 1
                    ? geos.IndexOf(geo) + 1
                    : (int?)null;
                var localName = BuildGeometryName(name, no, resKeyInfo);
                //Add this: <Geometry x:Key="cloud_3_iconGeometry">F1 M512,512z M0,0z M409.338,216.254C398.922,351.523z</Geometry>
                drawingGroupElement.AddBeforeSelf(new XElement(nsDef+"Geometry",
                    new XAttribute(nsx + "Key", localName),
                    geo.Value));
                geo.Value = BuildResKeyReference(localName, false);
            }
        }
コード例 #12
0
ファイル: ConverterLogic.cs プロジェクト: kazyx/SvgToXaml
 internal static string BuildResKey(string name, ResKeyInfo resKeyInfo)
 {
     if (resKeyInfo.UseComponentResKeys)
     {
         return $"{{x:Static {resKeyInfo.NameSpaceName}:{resKeyInfo.XamlName}.{ValidateName(name)}Key}}";
     }
     string result = name;
     if (resKeyInfo.Prefix != null)
         result = resKeyInfo.Prefix + C_PrefixSeparator + name;
     result = ValidateName(result);
     return result;
 }
コード例 #13
0
ファイル: ConverterLogic.cs プロジェクト: kazyx/SvgToXaml
 internal static string GetElemNameFromResKey(string name, ResKeyInfo resKeyInfo)
 {
     if (resKeyInfo.UseComponentResKeys)
     {   //{x:Static NameSpaceName:XamlName.ElementName}
         var p1 = name.IndexOf(".");
         var p2 = name.LastIndexOf("}");
         if (p1 < p2)
             return name.Substring(p1 + 1, p2 - p1 - 1);
         else
             return name;
     }
     else
     {
         if (resKeyInfo.Prefix == null)
             return name;
         var prefixWithSeparator = resKeyInfo.Prefix + C_PrefixSeparator;
         if (name.StartsWith(resKeyInfo.Prefix + C_PrefixSeparator, StringComparison.OrdinalIgnoreCase))
             name = name.Remove(0, prefixWithSeparator.Length);
         return name;
     }
 }
コード例 #14
0
ファイル: ConverterLogic.cs プロジェクト: kazyx/SvgToXaml
 internal static string BuildColorBrushName(int no, ResKeyInfo resKeyInfo)
 {
     var rawName = $"Color{no}Brush";
     return BuildResKey(rawName, resKeyInfo);
 }
コード例 #15
0
ファイル: ConverterLogic.cs プロジェクト: kazyx/SvgToXaml
 internal static string BuildGeometryName(string name, int? no, ResKeyInfo resKeyInfo)
 {
     var rawName = no.HasValue
         ? $"{name}Geometry{no.Value}"
         : $"{name}Geometry"; //dont add number if only one Geometry
     return BuildResKey(rawName, resKeyInfo);
 }
コード例 #16
0
ファイル: ConverterLogic.cs プロジェクト: kazyx/SvgToXaml
 internal static string BuildDrawingImageName(string elementName, ResKeyInfo resKeyInfo)
 {
     var rawName = elementName + "DrawingImage";
     return BuildResKey(rawName, resKeyInfo);
 }
コード例 #17
0
        internal static ResourceDictionary ConvertFilesToResourceDictionary(IEnumerable <string> files, WpfDrawingSettings wpfDrawingSettings, ResKeyInfo resKeyInfo)
        {
            var dict = new ResourceDictionary();

            foreach (var file in files)
            {
                var drawingGroup = ConvertFileToDrawingGroup(file, wpfDrawingSettings);
                var elementName  = Path.GetFileNameWithoutExtension(file);
                var keyDg        = BuildDrawingGroupName(elementName, resKeyInfo);
                dict[keyDg] = drawingGroup;
            }
            return(dict);
        }
コード例 #18
0
ファイル: ConverterTests.cs プロジェクト: kazyx/SvgToXaml
 public void BuildDrawingGroupName_returns_prefixedName()
 {
     var resKeyInfo = new ResKeyInfo
     {
         UseComponentResKeys = false,
         Prefix = "NamePrefix"
     };
     ConverterLogic.BuildDrawingGroupName("ElementName", resKeyInfo).Should().Be("NamePrefix_ElementNameDrawingGroup");
 }
コード例 #19
0
        internal static string BuildDrawingGroupName(string elementName, ResKeyInfo resKeyInfo)
        {
            var rawName = elementName + "DrawingGroup";

            return(BuildResKey(rawName, resKeyInfo));
        }
コード例 #20
0
ファイル: ConverterLogic.cs プロジェクト: kazyx/SvgToXaml
 public static string SvgFileToXaml(string filepath, ResultMode resultMode, ResKeyInfo resKeyInfo, WpfDrawingSettings wpfDrawingSettings = null)
 {
     string name;
     var obj = ConvertSvgToObject(filepath, resultMode, wpfDrawingSettings, out name, resKeyInfo);
     return SvgObjectToXaml(obj, wpfDrawingSettings != null ? wpfDrawingSettings.IncludeRuntime : false, name);
 }
コード例 #21
0
ファイル: ConverterTests.cs プロジェクト: kazyx/SvgToXaml
 public void Handwheel() //Full integrated with all optimizations
 {
     var resKeyInfo = new ResKeyInfo { Prefix = "Prefix" };
     var xaml = ConverterLogic.SvgFileToXaml("TestFiles\\Handwheel.svg", ResultMode.DrawingGroup, resKeyInfo, null);
     Console.WriteLine(xaml);
     Clipboard.SetText(xaml);
 }
コード例 #22
0
ファイル: ConverterLogic.cs プロジェクト: kazyx/SvgToXaml
 public static string SvgDirToXaml(string folder, ResKeyInfo resKeyInfo)
 {
     return SvgDirToXaml(folder, resKeyInfo, null);
 }
コード例 #23
0
ファイル: ConverterTests.cs プロジェクト: kazyx/SvgToXaml
 public void BuildDrawingGroupName_returns_prefixedName_using_CompResKey()
 {
     var resKeyInfo = new ResKeyInfo
     {
         UseComponentResKeys = true,
         XamlName = "XamlName",
         NameSpaceName = "NameSpaceName",
         //Prefix = "NamePrefix"
     };
     var key = ConverterLogic.BuildDrawingGroupName("ElementName", resKeyInfo);
     Console.WriteLine(key);
     key.Should().Be("{x:Static NameSpaceName:XamlName.ElementNameDrawingGroupKey}");
 }
コード例 #24
0
ファイル: ConverterLogic.cs プロジェクト: kazyx/SvgToXaml
        public static string SvgDirToXaml(string folder, ResKeyInfo resKeyInfo, WpfDrawingSettings wpfDrawingSettings)
        {
            //firstChar Upper
            var firstChar = Char.ToUpper(resKeyInfo.XamlName[0]);
            resKeyInfo.XamlName = firstChar + resKeyInfo.XamlName.Remove(0, 1);


            var files = SvgFilesFromFolder(folder);
            var dict = ConvertFilesToResourceDictionary(files, wpfDrawingSettings, resKeyInfo);
            var xamlUntidy = WpfObjToXaml(dict, wpfDrawingSettings != null ? wpfDrawingSettings.IncludeRuntime : false);

            var doc = XDocument.Parse(xamlUntidy);
            RemoveResDictEntries(doc.Root);
            var drawingGroupElements = doc.Root.XPathSelectElements("defns:DrawingGroup", _nsManager).ToList();
            foreach (var drawingGroupElement in drawingGroupElements)
            {
                BeautifyDrawingElement(drawingGroupElement, null);
                ExtractGeometries(drawingGroupElement, resKeyInfo);
            }

            AddNameSpaceDef(doc.Root, resKeyInfo);
            ReplaceBrushesInDrawingGroups(doc.Root, resKeyInfo);
            AddDrawingImagesToDrawingGroups(doc.Root);
            return doc.ToString();
        }
コード例 #25
0
ファイル: ConverterLogic.cs プロジェクト: zyj0021/SvgToXaml
 public static string SvgDirToXaml(string folder, ResKeyInfo resKeyInfo, bool filterPixelsPerDip)
 {
     return(SvgDirToXaml(folder, resKeyInfo, null, filterPixelsPerDip));
 }
コード例 #26
0
        public static object ConvertSvgToObject(string filepath, ResultMode resultMode, WpfDrawingSettings wpfDrawingSettings, out string name, ResKeyInfo resKeyInfo)
        {
            var dg          = ConvertFileToDrawingGroup(filepath, wpfDrawingSettings);
            var elementName = Path.GetFileNameWithoutExtension(filepath);

            switch (resultMode)
            {
            case ResultMode.DrawingGroup:
                name = BuildDrawingGroupName(elementName, resKeyInfo);
                return(dg);

            case ResultMode.DrawingImage:
                name = BuildDrawingImageName(elementName, resKeyInfo);
                return(DrawingToImage(dg));

            default:
                throw new ArgumentOutOfRangeException("resultMode");
            }
        }
コード例 #27
0
ファイル: ConverterTests.cs プロジェクト: kazyx/SvgToXaml
 public void SvgDirToXamlTest_withNamePrefix()
 {
     var settings = new WpfDrawingSettings
     {
         IncludeRuntime = false,
         TextAsGeometry = false,
         OptimizePath = true,
     };
     var resKeyInfo = new ResKeyInfo { XamlName = "Test", Prefix = "NamePrefix" };
     var xaml = ConverterLogic.SvgDirToXaml("TestFiles\\", resKeyInfo, settings);
     Console.WriteLine(xaml);
     //File.WriteAllText("TestFiles\\ExpectedXaml_SvgDirToXamlTest_withNamePrefix.xaml", xaml);
     var expectedXaml = File.ReadAllText("TestFiles\\ExpectedXaml_SvgDirToXamlTest_withNamePrefix.xaml");
     xaml.Should().Be(expectedXaml);
 }
コード例 #28
0
        internal static string BuildColorBrushName(int no, ResKeyInfo resKeyInfo)
        {
            var rawName = $"Color{no}Brush";

            return(BuildResKey(rawName, resKeyInfo));
        }
コード例 #29
0
ファイル: SvgImagesViewModel.cs プロジェクト: kazyx/SvgToXaml
        private void BuildBatchFile(string outFileName, ResKeyInfo compResKeyInfo)
        {
            if (MessageBox.Show(outFileName + "\nhas been written\nCreate a BatchFile to automate next time?",
                null, MessageBoxButton.YesNoCancel) == MessageBoxResult.Yes)
            {
                var outputname = Path.GetFileNameWithoutExtension(outFileName);
                var outputdir = Path.GetDirectoryName(outFileName);
                var relOutputDir = FileUtils.MakeRelativePath(CurrentDir, PathIs.Folder, outputdir, PathIs.Folder);
                var svgToXamlPath =System.Reflection.Assembly.GetEntryAssembly().Location;
                var relSvgToXamlPath = FileUtils.MakeRelativePath(CurrentDir, PathIs.Folder, svgToXamlPath, PathIs.File);
                var batchText = $"{relSvgToXamlPath} BuildDict /inputdir \"{"."}\" /outputdir \"{relOutputDir}\" /outputname {outputname}";

                if (compResKeyInfo.UseComponentResKeys)
                {
                    batchText += $" /useComponentResKeys=true /compResKeyNSName={compResKeyInfo.NameSpaceName} /compResKeyNS={compResKeyInfo.NameSpace}";
                    WriteT4Template(outFileName);
                }
                else
                {
                    if (!string.IsNullOrWhiteSpace(compResKeyInfo.Prefix))
                    {
                        batchText += " /nameprefix \"" + compResKeyInfo.Prefix + "\"";
                    }
                }

                batchText += "\r\npause";

                File.WriteAllText(Path.Combine(CurrentDir, "Update.cmd"), batchText);

                ////Copy ExeFile
                //var srcFile = Environment.GetCommandLineArgs().First();
                //var destFile = Path.Combine(CurrentDir, Path.GetFileName(srcFile));
                ////Console.WriteLine("srcFile:", srcFile);
                ////Console.WriteLine("destFile:", destFile);
                //if (!string.Equals(srcFile, destFile, StringComparison.OrdinalIgnoreCase))
                //{
                //    Console.WriteLine("Copying file...");
                //    File.Copy(srcFile, destFile, true);
                //}
            }
        }
コード例 #30
0
ファイル: ConverterLogic.cs プロジェクト: kazyx/SvgToXaml
 private static void AddNameSpaceDef(XElement root, ResKeyInfo resKeyInfo)
 {
     if (resKeyInfo.UseComponentResKeys)
     {
         root.Add(new XAttribute(XNamespace.Xmlns + resKeyInfo.NameSpaceName, "clr-namespace:" + resKeyInfo.NameSpace));
     }
 }