📄 toolbargenerator.cs
字号:
using System;
using FreeTextBoxControls.Common;
namespace FreeTextBoxControls {
/// <summary>
/// Builds Toolbars and ToolbarItems from strings
/// </summary>
public class ToolbarGenerator {
//Toolbar layouts
public static string DefaultConfigString = "Bold,Italic,Underline,Strikethrough;Superscript,Subscript,RemoveFormat|FontFacesMenu,FontSizesMenu,FontForeColorsMenu|JustifyLeft,JustifyRight,JustifyCenter,JustifyFull;BulletedList,NumberedList,Indent,Outdent;CreateLink,Unlink,InsertImage,InsertTable,InsertRule|Cut,Copy,Paste;Undo,Redo,Print,ieSpellCheck";
public static string AlternateConfigString = "Save,Print,Undo,Redo,WordClean,InsertTable|ParagraphMenu,FontFacesMenu,FontSizesMenu,SymbolsMenu|Bold,Italic,Underline,Strikethrough;Superscript,Subscript,RemoveFormat|JustifyLeft,JustifyRight,JustifyCenter,JustifyFull;BulletedList,NumberedList,Indent,Outdent;CreateLink,Unlink,InsertImage,InsertRule|Cut,Copy,Paste,ieSpellCheck";
public static string EnableAllConfigString = "ParagraphMenu,FontFacesMenu,FontSizesMenu|FontForeColorsMenu,FontBackColorsMenu|Bold,Italic,Underline,Strikethrough,Superscript,Subscript;InsertImage,CreateLink,Unlink,RemoveFormat|JustifyLeft,JustifyRight,JustifyCenter,JustifyFull;BulletedList,NumberedList,Indent,Outdent|Cut,Copy,Paste,Delete;Undo,Redo,Print,Save|StyleMenu,SymbolsMenu,InsertHtmlMenu|InsertRule,InsertDate,InsertTime,WordCount,ieSpellCheck,WordClean,InsertTable,InsertRA";
public static string MinimalConfigString = "Bold,Italic,Underline";
/// <summary>
/// Returns a Toolbars with the default configuration
/// </summary>
public static ToolbarList Default {
get {
return ToolbarGenerator.ToolbarsFromString(DefaultConfigString);
}
}
/// <summary>
/// Returns a Toolbars with the all buttons and dropdowns enabled
/// </summary>
public static ToolbarList EnableAll {
get {
return ToolbarGenerator.ToolbarsFromString(EnableAllConfigString);
}
}
/// <summary>
/// Returns a Toolbars with an alternate configuration
/// </summary>
public static ToolbarList Alternate {
get {
return ToolbarGenerator.ToolbarsFromString(AlternateConfigString);
}
}
/// <summary>
/// Returns a Toolbars with only bold, italic, and underline
/// </summary>
public static ToolbarList Minimal {
get {
return ToolbarsFromString(MinimalConfigString);
}
}
//ADD: Ethan J. Brown -- works like before,
/// <summary>
/// Generates Toolbars from ToolbarLayout string
/// </summary>
public static ToolbarList ToolbarsFromString(string toolbarLayout)
{
return ToolbarsFromString(toolbarLayout, null);
}
/// <summary>
/// Generates Toolbars from ToolbarLayout string
/// </summary>
//CHANGE: Ethan J. Brown - changed signature of method so that custom toolbar items can be used
public static ToolbarList ToolbarsFromString(string toolbarLayout, ToolbarItemsList toolbarItemsList) {
ToolbarList myToolbars = new ToolbarList();
try {
string[] ToolbarStrings = toolbarLayout.Replace(" ","").Replace(";",",;,").Replace(",,",",").ToLower().Split(new char[] {'|'});
for (int i=0; i<ToolbarStrings.Length; i++) {
Toolbar myToolBar = new Toolbar("Toolbar" + i.ToString());
string[] ItemStrings = ToolbarStrings[i].Split(new char[] {','});
for (int j = 0; j < ItemStrings.Length; j++) {
//CHANGE: Ethan J. Brown -- call changed to support custom toolbar items
myToolBar.Items.Add(ToolbarItemFromString(ItemStrings[j], toolbarItemsList));
}
myToolbars.Add(myToolBar);
}
} catch (Exception e) {
throw new Exception("Invalid ToolbarLayout -> " + e.ToString());
}
return myToolbars;
}
//ADD: Ethan J. Brown -- works like before, passes null ToolbarItemsList
/// <summary>
/// Returns a ToolbarItem from it's string representation. If an invalid string is given, a ToolbarSeparator is returned.
/// </summary>
public static ToolbarItem ToolbarItemFromString(string StringName) {
return ToolbarItemFromString(StringName, null);
}
/// <summary>
/// Returns a ToolbarItem from it's string representation. If an invalid string is given, a ToolbarSeparator is returned.
/// </summary>
//CHANGE: Ethan J. Brown -- changed signature so that custom toolbar items can be used
public static ToolbarItem ToolbarItemFromString(string StringName, ToolbarItemsList toolbarItemsList) {
switch (StringName.ToLower()) {
case "insertra":
return ToolbarItems.InsertRA;
case "wordspellcheck":
return ToolbarItems.WordSpellCheck;
case "iespellcheck":
return ToolbarItems.ieSpellCheck;
case "save":
return ToolbarItems.Save;
case "bold":
return ToolbarItems.Bold;
case "italic":
return ToolbarItems.Italic;
case "underline":
return ToolbarItems.Underline;
case "strikethrough":
return ToolbarItems.Strikethrough;
case "superscript":
return ToolbarItems.Superscript;
case "subscript":
return ToolbarItems.Subscript;
case "removeformat":
return ToolbarItems.RemoveFormat;
case "justifyleft":
return ToolbarItems.JustifyLeft;
case "justifycenter":
return ToolbarItems.JustifyCenter;
case "justifyright":
return ToolbarItems.JustifyRight;
case "justifyfull":
return ToolbarItems.JustifyFull;
case "bulletedlist":
return ToolbarItems.BulletedList;
case "numberedlist":
return ToolbarItems.NumberedList;
case "indent":
return ToolbarItems.Indent;
case "outdent":
return ToolbarItems.Outdent;
case "cut":
return ToolbarItems.Cut;
case "copy":
return ToolbarItems.Copy;
case "paste":
return ToolbarItems.Paste;
case "delete":
return ToolbarItems.Delete;
case "undo":
return ToolbarItems.Undo;
case "redo":
return ToolbarItems.Redo;
case "print":
return ToolbarItems.Print;
case "changecase":
return ToolbarItems.ChangeCase;
case "createlink":
return ToolbarItems.CreateLink;
case "unlink":
return ToolbarItems.Unlink;
case "insertimage":
return ToolbarItems.InsertImage;
case "insertrule":
return ToolbarItems.InsertRule;
case "insertdate":
return ToolbarItems.InsertDate;
case "inserttime":
return ToolbarItems.InsertTime;
case "wordcount":
return ToolbarItems.WordCount;
case "fontfacesmenu":
return ToolbarItems.FontFacesMenu;
case "fontsizesmenu":
return ToolbarItems.FontSizesMenu;
case "fontforecolorsmenu":
return ToolbarItems.FontForeColorsMenu;
case "fontbackcolorsmenu":
return ToolbarItems.FontBackColorsMenu;
case "stylemenu":
return ToolbarItems.StyleMenu;
case "inserthtmlmenu":
return ToolbarItems.InsertHtmlMenu;
case "symbolsmenu":
return ToolbarItems.SymbolsMenu;
case "paragraphmenu":
return ToolbarItems.ParagraphMenu;
case "inserttable":
return ToolbarItems.InsertTable;
case "wordclean":
return ToolbarItems.WordClean;
//ADD: Ethan J. Brown -- finds matching toolbar item name in passed in list
default:
if (null != toolbarItemsList)
{
for (int i = 0; i < toolbarItemsList.Count; ++i)
{
if (StringName.ToLower() == toolbarItemsList[i].Name.ToLower())
return toolbarItemsList[i];
}
}
return ToolbarItems.Separator;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -