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文件显示界面的主要内容,如果未能解决你的问题,请参考以下文章