📄 iconprovider.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 + -