Fireball.XmlGui






2.10/5 (7投票s)
2005 年 7 月 29 日
2分钟阅读

34543

517
一个用于创建基于 XML 文件创建用户界面的插件的库。
引言
在本文中,我将介绍 Fireball.XmlGui 是什么,并对其进行简要介绍。该库正在开发中,任何建议和错误反馈都将不胜感激。如果您发现错误,请在 这里 注册并向我们发送问题。Fireball.XmlGui 采用 LGPL 许可,这对于需要在商业应用程序中使用该库的程序员非常有用,因为 LGPL 不会强制您分发源代码,您只需要分发或链接到我的网站以获取 Fireball.XmlGui 源代码。有关此库的新闻,请访问 我的主页,并从 这里 获取最新的二进制文件。
背景
Fireball.XmlGui 是为基于插件的应用程序开发而设计的,用于支持使用简单的 XML 文件创建动态插件。其语法非常类似于 XAML,并且也可以使用代码隐藏!您只需要在文档的根节点上指定 CodeBehind
属性,并提供 C# 源代码文件的文件名即可。该库不仅限于 System.Windows.Forms
GUI 创建。您还可以使用它来动态创建任何其他类型的类,例如在 XML 中将类作为子节点添加,就像此示例中的 Controls
标签一样。您只需要集合并从 System.Collections.IList
继承即可。
使用代码
请参阅下一个 XML 示例代码
<?xml version="1.0" encoding="utf-8" ?>
<XFGDocument Name="Sample XmlGui"
NameSpaces="System.Drawing,System.Windows.Forms,
customNamespace,Fireball.XmlGui.Graphics"
CodeBehind="formsample.fxg.cs">
<References>
<Assembly Name="System.dll" />
<Assembly Name="System.Drawing.dll" />
<Assembly Name="System.Windows.Forms.dll" />
</References>
<MyForm Name="Prova" Height="300" Width="400" Text="Hello World!">
<Controls>
<ToolStrip Name="ToolStrip1">
</ToolStrip>
<MenuStrip Name="MenuStrip1">
<Items>
<ToolStripMenuItem Text="File" >
<DropDownItems>
<ToolStripMenuItem Text="New" Click="MyForm.OpenClick"/>
<ToolStripMenuItem Text="Open" Click="MyForm.OpenClick"/>
</DropDownItems>
</ToolStripMenuItem>
</Items>
</MenuStrip>
<Panel Dock="Fill" BackColor="Color.Red">
<Controls>
<WebBrowser Name="browser1" Dock="Fill" />
</Controls>
</Panel>
<StatusStrip />
</Controls>
</MyForm>
</XFGDocument>
根元素是 XFGDocument
。在该标签上,您需要设置其名称和 NameSpaces
属性,以指定您需要从 XML 中使用的所有命名空间,每个命名空间之间用一个,(逗号)分隔。您还可以使用 CodeBehind
属性指定代码隐藏文件。在此示例中,文档的第一个子标签需要是一个表单。在此示例中,我使用了在代码隐藏文件中声明的类。MyForm
是一个从 System.Windows.Forms.Form
继承的类。接下来,是代码隐藏文件的源代码
using System;
using System.Drawing;
using System.Windows.Forms;
namespace customNamespace
{
public class MyForm : Form
{
static MyForm MyFormIstance;
public MyForm()
{
MyFormIstance = this;
}
public static void OpenClick(object sender,EventArgs e)
{
WebBrowser br =
(WebBrowser)MyFormIstance.Controls.Find("browser1", true)[0];
br.Navigate("http://www.dotnetfireball.org");
}
}
}
源代码非常短且简单,您不需要成为专家才能使用此库创建 GUI;)。在 XML 代码中,如果您需要设置属性,可以将其作为属性来完成。目前,就这些了。如果您对该库有任何疑问,请随时与我联系。我计划在未来撰写更多关于此库的文章。目前,我的时间主要用于库的开发和其他工作;)
注意:要运行示例,请转到示例的 bin/debug 目录并执行 run.bat 文件。