zoukankan      html  css  js  c++  java
  • 在后台代码中引入XAML的方法

    本文将介绍三种方法用于在后台代码中动态加载XAML,其中有两种方法是加载已存在的XAML文件,一种方法是将包含XAML代码的字符串转换为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对象技术可为程序提供更为灵活的对象生成方式,这在一些复杂的情况下尤为实用。

  • 相关阅读:
    菜鸟系列docker——docker镜像下(5)
    菜鸟系列docker——docker镜像中(4)
    菜鸟系列docker——docker镜像上(3)
    菜鸟系列docker——docker仓库(2)
    菜鸟系列docker——docker基本概念(1)
    Postman工具内容梳理
    Fiddler抓包手机APP失败的处理
    微信
    微信文本的爬取
    如何写活类的装饰器
  • 原文地址:https://www.cnblogs.com/dinotang/p/3272211.html
Copyright © 2011-2022 走看看