⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iconprovider.cs

📁 C#实现DHTML编辑器功能!
💻 CS
字号:
// DINAMIC XML Editor
//
// Copyright (c) 2002-2003 Dusan Hlavaty
// mailto: duddo@atlas.cz
//
// This software is licensed under the terms of
// GNU General Public license
//
using System;
using System.Drawing;
using System.IO;

namespace XML_editor.Common
{
	/// <summary>
	/// Tato trieda poskytuje prostriedky na nacitavanie ikoniek.
	/// </summary>
	public class IconProvider
	{
		
		/// <summary>
		/// Filter pre FileOpenDialog. Obsahuje zoznam vsetkych podporovanych suborov.
		/// </summary>
		public static readonly string FileOpenFilter = "XML files (*.xml)|*.xml|XSLT Stylesheet files (*.xsl)|*.xsl|XML Schema files (*.xsd)|*.xsd|Scalable Vector Graphics files (*.svg)|*.svg|DTD Documet Type Definition file (*.dtd)|*.dtd|All files (*.*)|*.*";

		// -------------------------------------------------------------------------
		/// <summary>
		/// Vrati ikonku pre dany subor.
		/// </summary>
		/// <param name="sender">Odosielatel - sem daj len <c>this</c> </param>
		/// <param name="fileName">Nazov suboru, pre ktory chceme ziskat ikonku.</param>
		/// <returns>Ikonka, ktora prislucha tomuto suboru</returns>
		public static Icon GetIconForFileName(Object sender, string fileName) 
		{
			if ((fileName == null) || (fileName == String.Empty)) 
			{
				return IconProvider.LoadIcon(sender, "XML_editor.Icons.unknown_doc.ico");
			}

			FileInfo fileInfo = new FileInfo(fileName);
			
		//	System.Diagnostics.Debug.WriteLine("Extension: " +  fileInfo.Extension );

			switch (fileInfo.Extension.ToLower()) 
			{
				case ".xml":
				case ".testconfig":
				case ".manifest":
				case ".config":
				case ".addin":
				case ".xshd":
				case ".user":
				case ".csproj":
					return IconProvider.LoadIcon(sender, "XML_editor.Icons.xml.ico");

				case ".xsl":
				case ".xslt":
					return IconProvider.LoadIcon(sender, "XML_editor.Icons.xsl.ico");

				case ".xsd":
					return IconProvider.LoadIcon(sender, "XML_editor.Icons.xsd.ico");

				case ".svg":
					return IconProvider.LoadIcon(sender, "XML_editor.Icons.svg.ico");

				default:
					return IconProvider.LoadIcon(sender, "XML_editor.Icons.unknown_doc.ico");
			}
		}
		
		// -------------------------------------------------------------------------
		/// <summary>
		/// Nacita ikonku z resourcov
		/// </summary>
		/// <param name="sender">Odosielatel - sem daj len <c>this</c> </param>
		/// <param name="iconName">Plny nazov ikonky Napr. "XML_editor.Icons.xml.ico"</param>
		/// <returns><see cref="Icon"/> instancia</returns>
		public static Icon LoadIcon(Object sender, string iconName)
		{
			// Ziskame assembly ktora obsahuje danu ikonu
			System.Reflection.Assembly myAssembly = System.Reflection.Assembly.GetAssembly(sender.GetType());

			// Ziskame stream z resourcov
			System.IO.Stream iconStream = myAssembly.GetManifestResourceStream(iconName);

			// Nacitame Iconu zo streamu a vratime ju
			if (iconStream == null) 
			{
				return null;
			} 
			else 
			{
				return new System.Drawing.Icon(iconStream);
			}
		}

		// -------------------------------------------------------------------------
		/// <summary>
		/// Nacita bitmapu z resourcov
		/// </summary>
		/// <param name="sender">Odosielatel - sem daj len <c>this</c> </param>
		/// <param name="imageName">Plny nazov bitmapy Napr. "XML_editor.Icons.UndoIcon.png"</param>
		/// <returns><see cref="Bitmap"/> instancia</returns>
		public static Bitmap LoadBitmap(Object sender, string imageName)
		{
			// Ziskame assembly ktora obsahuje danu ikonu
			System.Reflection.Assembly myAssembly = System.Reflection.Assembly.GetAssembly(sender.GetType());

			// Ziskame stream z resourcov
			System.IO.Stream imageStream = myAssembly.GetManifestResourceStream(imageName);

			// Nacitame Bitmapu zo streamu
			if (imageStream == null) 
			{
				return null;
			} 
			else 
			{
				return new Bitmap(imageStream);
			}
		}

		// -------------------------------------------------------------------------
		/// <summary>
		/// Nacita bitmapu z resourcov
		/// </summary>
		/// <param name="sender">Odosielatel - sem daj len <c>this</c> </param>
		/// <param name="imageName">Plny nazov bitmapy Napr. "XML_editor.Icons.UndoIcon.png"</param>
		/// <param name="makeTransparent">true = ak sa ma vytvorit transparentna bitmapa</param>
		/// <param name="transparentPixel">Ktory Pixel ma byt transparentny</param>
		/// <returns><see cref="Bitmap"/> instancia</returns>
		public static Bitmap LoadBitmap(Object sender, string imageName, bool makeTransparent, Point transparentPixel)
		{
			Bitmap image = IconProvider.LoadBitmap(sender, imageName);

			if ((makeTransparent == true) && (image != null))
			{
				Color backColor = image.GetPixel(transparentPixel.X, transparentPixel.Y);
    
				// Make backColor transparent for Bitmap
				image.MakeTransparent(backColor);
			}
			    
			return image;
		}



	} // public class IconProvider
} // namespace XML_editor.Common

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -