Создание GUI с использованием XML-файла в C # - PullRequest
2 голосов
/ 27 апреля 2010

Как я могу создать автоматический графический интерфейс с использованием XML-файла в C #? Должен ли я написать анализатор для файла и определить своего рода «протокол» для структуры файла, а после анализа - создать элементы управления GUI вручную (в соответствии с данными в файлах)?

Или есть способ получше? Есть ли инструмент или встроенный код в среде .NET, который может сделать это автоматически?

(В настоящее время я работаю с выигрышными формами, но я готов рассмотреть любую другую технологию - если она поддерживается в MONO, поскольку код должен быть переносим и на Linux).

Ответы [ 5 ]

4 голосов
/ 27 апреля 2010

Glade - это инструмент RAD, позволяющий быстро и легко разрабатывать пользовательские интерфейсы для инструментария GTK + и среды рабочего стола GNOME.

Пользовательские интерфейсы, разработанные в Glade, сохраняются в формате XML, и с помощью объекта GtkBuilder GTK + они могут загружаться приложениями динамически по мере необходимости.

Используя GtkBuilder, XML-файлы Glade могут использоваться на многих языках программирования, включая C, C ++, C #, Vala, Java, Perl, Python и другие.

Я использовал glade с C # и был доволен результатом. Поляна, вероятно, не подойдет вам напрямую, но вы можете, по крайней мере, позаимствовать у нее некоторые идеи.

1 голос
/ 27 апреля 2010

Если вы собираетесь использовать XML, то вам действительно следует знать о схемах XML - это файлы XML, которые описывают содержимое файла XML, и DevStudio (и другие редакторы) могут их читать и выполнять автозаполнение, что полезно , Кроме того, вы можете проверить XML по схеме, чтобы убедиться, что содержимое не содержит структурных ошибок.

Кроме того, как писал Пол, XAML - это система XML, но вам необходимо использовать инфраструктуру WPF для ее анализа.

0 голосов
/ 24 декабря 2016

Выезд:

https://social.msdn.microsoft.com/Forums/en-US/554eefae-429f-495c-aee0-b2e971494ed0/how-do-i-create-a-gui-which-reads-xml-file-and-adds-controls-to-it-at-runtime?forum=csharplanguage

using System;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using System.Xml.Linq;

namespace WindowsFormsApplication_DynamicGUIFromXML
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        XDocument guiConfig = XDocument.Load(@"../../Gui.xml");

        foreach (XElement item in from y in guiConfig.Descendants("Item") select y)
        {
            Control tmp = new Control();
            switch (item.Attribute("type").Value)
            {
                case "Button":
                    tmp = new Button();
                    break;
                case "TextBox":
                    tmp = new TextBox();
                    break;
            }

            tmp.Name = item.Attribute("name").Value;
            tmp.Text = item.Attribute("text").Value;
            tmp.Location = new Point(Int32.Parse(item.Attribute("x").Value), Int32.Parse(item.Attribute("y").Value));
            Controls.Add(tmp);
        }

    }
    }
 }

// ***********************************************
// Contents of Gui.xml
// ***********************************************
//<?xml version="1.0" encoding="utf-8" ?>
//<Gui>
//  <Item type="Button" name="foo" text="bar" x="100" y="100"  />
//  <Item type="TextBox" name="foo2" text="bar2" x="200" y="200"  />
//</Gui>
// ***********************************************
0 голосов
/ 27 апреля 2010

«Есть ли инструмент или встроенный код в среде .NET, который может сделать это автоматически?»

Существуют различные оболочки для .NET вокруг XULRunner на code.google.com

0 голосов
/ 27 апреля 2010

WPF использует xml для определения большинства вещей, он известен как xaml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...