WPF中怎么把WPF的界面导出XML格式,可以导出导入XML文件显示界面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF中怎么把WPF的界面导出XML格式,可以导出导入XML文件显示界面相关的知识,希望对你有一定的参考价值。

如果有DEMO万分感谢。

需要注意的是是Grid元素的xmln标签一定不能少,而且要将xml文件作“资源”进行设置

<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Border Margin="40,59,60,141" Name="border1" Background="Cyan" BorderBrush="Beige" >
<Button Name="b1" Content="test" Width="80" Height="50" ></Button>
</Border>
</Grid>

2。在wpf的方法中添加这样的读取代码

using System.Windows.Markup;

Uri uri = new Uri("pack://application:,,,/test.xml");//加载资源,注意格式,最后有个/
Stream s = App.GetResourceStream(uri).Stream;//读取资源流
FrameworkElement fe = XamlReader.Load(s) as FrameworkElement;
Content = fe;//将从xml读取的元素赋值给窗体的Content

这样就可以显示了你在xml中设置的ui元素了

资源添加到wpf的window中以后,就可以使用findname方法来找到某些元素,然后进行其他附加操作

特2:

也可以使用window标签作为xml文件的元素标签,这意味着我们就是要生成一个window对象。

<window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">

<Grid>
<Border Margin="40,59,60,141" Name="border1" Background="Cyan" BorderBrush="Beige" >
<Button Name="b1" Content="test" Width="80" Height="50" ></Button>
</Border>
</Grid>

</window>

在app的代码这样写,在启动方法中

Uri uri = new Uri("pack://application:,,,/test.xml");
Stream s = App.GetResourceStream(uri).Stream;
window w = XamlReader.Load(s) as window;

window.addHander();//添加某些按钮或者其他控件的事件发方法

app.run(w);

这样就可以从xml文档中装载一个window元素对象

本文使用Blog_Backup未注册版本导出,请到soft.pt42.com注册。
参考技术A xml序列化,你可以先导入导出一个 Button 试试,或者一个简单的类。
http://www.cnblogs.com/fish-li/archive/2013/05/05/3061816.html#_label2本回答被提问者采纳

C#,WPF使用word模板导出word文档

   使用word模板导出word文档,首先需要在word模板中插入书签:

根据创建的书签名和位置,将需要写入的内容插入到word文件中。

需要引用  Microsoft.Office.Interop.Word;在添加引用-程序集中搜索可以找到。

 

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using Telerik.Windows.Controls;

namespace LawsRegulationDate.LawenforceManagement.DocumentFile
{
    /// <summary>
    /// Interaction logic for HomePage.xaml
    /// </summary>
    public partial class HomePage
    {
        public HomePage()
        {
            InitializeComponent();
        }

        private void 行政执法首页_Click(object sender, RoutedEventArgs e)
        {
            //模板文件
            string urlstring = System.Windows.Forms.Application.StartupPath + "\\\\File\\\\WordTemplate\\\\行政执法案卷(首页).docx";
            if (string.IsNullOrEmpty(urlstring) || !File.Exists(urlstring))
            {
                Message_Box.Show("【行政执法案卷(首页)】模板不存在!");
                return;
            }
            else
            {
                string fileName = string.Empty;
                System.Windows.Forms.FolderBrowserDialog fbd = new System.Windows.Forms.FolderBrowserDialog();
                fbd.ShowDialog();
                if (fbd.SelectedPath != string.Empty)
                {
                    fileName = fbd.SelectedPath + "\\\\行政执法案卷(首页)" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".docx";
                    WordEstablish(urlstring, fileName);
                }
                else
                {
                    Message_Box.Show("选择导出位置");
                    return;
                }


            }
        }
        /// <summary>
        /// 调用生产方法
        /// </summary>
        /// <param name="urlstring">模板文件</param>
        /// <param name="fileName">新文件</param>
        public void WordEstablish(string urlstring, string fileName)
        {
            try
            {
                #region 声明参数
                Dictionary<string, string> DList = new Dictionary<string, string>();
                DList.Add("案由", 案由.Text);
                DList.Add("处理结果", 处理结果.Text);
                DList.Add("立案年", LAYear.Text);
                DList.Add("立案月", LAMonth.Text);
                DList.Add("立案日", LADay.Text);
                DList.Add("结案年", JAYear.Text);
                DList.Add("结案月", JAMonth.Text);
                DList.Add("结案日", JADay.Text);
                DList.Add("", JianText.Text);
                DList.Add("", YeText.Text);
                DList.Add("档案号", GDText.Text);
                DList.Add("承办人", CBText.Text);
                DList.Add("归档年", GDYear.Text);
                DList.Add("归档月", GDMonth.Text);
                DList.Add("归档日", GDDay.Text);
                DList.Add("保存期限", BCYear.Text);
                #endregion
                if (WordClass.ExportWord(urlstring, fileName, DList))
                {
                    MessageBox.Show("生成\'" + fileName + "\'成功!");
                }
            }
            catch (Exception Ex)
            {
                MessageBox.Show(Ex.ToString());
                return;
            }
        }
    }
}

 

WordClass.cs类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Word = Microsoft.Office.Interop.Word;
using System.Collections.Generic;
using System.IO;
namespace LawsRegulationDate
{
    public class WordClass
    {
        /// <summary>
        /// 模板生成word
        /// </summary>
        /// <param name="templateFile">模板文件</param>
        /// <param name="fileName">新文件</param>
        /// <param name="myDictionary">参数数组</param>
        public static bool ExportWord(string templateFile, string fileName, Dictionary<string, string> myDictionary)
        {
            try
            {
                //生成word程序对象
                Word.Application app = new Word.Application();
                //模板文件
                string TemplateFile = templateFile;
                //模板文件拷贝到新文件
                File.Copy(TemplateFile, fileName);
                //生成documnet对象
                Word._Document doc = new Word.Document();
                object Obj_FileName = fileName;
                object Visible = false;
                object ReadOnly = false;
                object missing = System.Reflection.Missing.Value;
                //打开文件
                doc = app.Documents.Open(ref Obj_FileName, ref missing, ref ReadOnly, ref missing,
                    ref missing, ref missing, ref missing, ref missing,
                    ref missing, ref missing, ref missing, ref Visible,
                    ref missing, ref missing, ref missing,
                    ref missing);
                doc.Activate();
                #region 声明参数
                if (myDictionary.Count > 0)
                {
                    object what = Word.WdGoToItem.wdGoToBookmark;
                    object WordMarkName;
                    foreach (var item in myDictionary)
                    {
                        WordMarkName = item.Key;
                        doc.ActiveWindow.Selection.GoTo(ref what, ref missing, ref missing, ref WordMarkName);//光标转到书签的位置
                        doc.ActiveWindow.Selection.TypeText(item.Value);//插入的内容,插入位置是word模板中书签定位的位置
                        doc.ActiveWindow.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;//设置当前定位书签位置插入内容的格式
                    }
                }
                #endregion
                //输出完毕后关闭doc对象
                object IsSave = true;
                doc.Close(ref IsSave, ref missing, ref missing);
                return true;
            }
            catch
            {

                return false;
            }
        }
    }
}

 

以上是关于WPF中怎么把WPF的界面导出XML格式,可以导出导入XML文件显示界面的主要内容,如果未能解决你的问题,请参考以下文章

C#winform中如何把表导出到EXCEL

如何把Maya2012中制作的模型导入到微软的WPF中并且显示出来?

OxyPlot 导出图片及 WPF 元素导出为图片的方法

使用 WPF C# 将我的 SQL 数据库导出为 XML

OxyPlot 导出图片及 WPF 元素导出为图片的方法

在 WPF DataGrid 中使用多个 XML 文档