在后台代码中引入XAML的方法

本文将介绍三种方法用于在后台代码中动态加载XAML,其中有两种方法是加载已存在的XAML文件,一种方法是将包含XAML代码的字符串转换为WPF的对象。

这些是我在编写RegeX时获得的经验,它们将会给WPF程序带来更多的灵活性。

一、在资源字典中载入项目内嵌资源中的XAML文件

Application.Current.Resources.MergedDictionaries.Insert(0, Application.LoadComponent(new Uri("abc/Index.xaml", UriKind.Relative)) as ResourceDictionary);

此方法仅限于载入项目中包含的XAML资源文件,测试中载入项目以外的资源会提示找不到文件。

二、在资源字典中载入外部XAML文件

Application.Current.Resources.MergedDictionaries.Insert(0, XamlReader.Load(new FileStream("C:\\index.xaml", FileMode.Open)) as ResourceDictionary);

此方法适用于载入项目以外的XAML资源文件。

三、将XAML形式的字符串转换为对象

XamlReader.Parse(@"<FlowDocument xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation""><Paragraph><Run>Hi!</Run></Paragraph></FlowDocument>") as FlowDocument

此方法将生成一个流文档对象,在RegeX中我就是通过这种方法来灵活的控制流文档内容,以生成处理结果。

需注意的是,此方法需要.Net 3.5 SP1支持,此前好像是使用的Load方法的重载。

动态加载XAML文件技术非常适合用于资源载入,以此来实现语言切换、主题变换等功能。

动态转换XAML字符串为WPF对象技术可为程序提供更为灵活的对象生成方式,这在一些复杂的情况下尤为实用。

时间: 2024-09-17 04:52:11

在后台代码中引入XAML的方法的相关文章

【转】在html中引入CSS的方法

在html中,引入css的方法主要有行内式.内嵌式.导入式和链接式4种 1.行内式 即在标记的style属性中设定css样式,这种方式本质上没体现出css的优势,因此不推荐使用. 2.嵌入式 在对页面中各种元素的设置集中写在<head>和</head>之间的,对于单个页面来说,这种方式很方便 <style type="text/css"> div{margin: 0;padding: 0;border:1px red solid;} </sty

已经引用了“应用程序集”,但在后台代码中却看不见

问题描述 已经引用了"应用程序集",但在后台代码中却看不见,没有办法"Using".前端XAML,xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation">引用没有问题.usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Net;usingSystem.Windows;usi

JavaScript后台代码操作HTML TABLE的方法

原文:JavaScript后台代码操作HTML TABLE的方法 var rowNum = 0,fileNum = 0; //行号与列号 var oNewRow; //定义插入行对象 var oNewCell1,oNewCell2; //定义插入列对象 var fileNum = 1;  function addFileToTable(strFile) { fileNum +=1; rowNum = document.getElementById("NewFileList").rows

怎么样让wpf中前台已存在的控件的属性可以在后台代码中设置

问题描述 怎么样让wpf中前台已存在的控件的属性可以在后台代码中设置 怎么样让wpf中前台已存在的控件的属性可以在后台代码中设置,比如说xaml中已经存在一个border,我想要在后台代码中初始化他的旋转角度 解决方案 这些属性是可以在后台代码中设置的,直接在后台.cs文件里写就是了 解决方案二: 好像不能把,比如说 在后台代码怎么修改Angle属性呢 解决方案三: http://www.cnblogs.com/slowhand/archive/2013/05/13/3076259.html 亲

请大家帮我看看这个问题吧: 关于在后台代码中 定义一个string的问题?

问题描述 我在后台代码中是这么写的: publicpartialclass_Default:System.Web.UI.Page{privatestringfile_Path=ConfigurationManager.AppSettings["FileUploadPath"].ToString();privatestringfullFilePath=Server.MapPath(file_Path).ToString();}错误是: 错误1非静态字段.方法或属性"System

怎么在后台代码中访问ListView中&amp;amp;lt;EditItemTemplate&amp;amp;gt;模板中的控件?

问题描述 怎么在后台代码中访问ListView中<EditItemTemplate>模板中的控件?今天研究了很长时间,现在我可以通过以下后台代码访问<InsertItemTemplate>模板中控件:protectedvoidDropDownList1_SelectedIndexChanged(objectsender,EventArgse){DropDownListb=(DropDownList)ListView1.InsertItem.FindControl("Dro

wpf-我想用Wpf钟表,但是我不会将表上的针的旋转角度在后台代码中修改,求大神指导,小弟初学,求代码

问题描述 我想用Wpf钟表,但是我不会将表上的针的旋转角度在后台代码中修改,求大神指导,小弟初学,求代码 老师要我们做一个旋转的时钟,初学有点懵懂,就是让时分秒针正常的按照系统时间来转动 解决方案 http://www.codeproject.com/Articles/29438/Analog-Clock-in-WPF

.net中使用showModalDialog打开模式窗口,在后台代码中使用Response.Write()会弹出新页面

比如在模式窗口的后台代码中使用以下语句来关闭窗口,就会弹出一个新的IE窗口出来,严重违反设计原意 string js = @"<Script language='JavaScript'>alert('保存成功!');window.close();</Script>"; Response.Write(js);   要解决这个问题,在<head>标记中加入<base target="_self" />即可  

在Html中引入CSS的方法

HTML与CSS是两个作用不同的语言,它们同时对一个网页产生作用,因此必须通过一些方法,将CSS与HTML挂接在一起,才能正常工作. 在HTML中,引入CSS的方法主要有行内式.内嵌式.导入式和链接式4种. 1, 行内式 Code: <div style="border:2px #00F solid; width:80px; height:30px;">文本内容</div> 在标记的style属性中设置CSS样式,这种方法无法体现CSS的优势,不提倡使用. 2,