首页 > 其他分享 >wpf baml 文件读取

wpf baml 文件读取

时间:2024-10-26 20:59:30浏览次数:6  
标签:baml 读取 Windows System Demo01 var using wpf MainWindow

bmal文件读取

运行效果

Demo01\Demo01\MainWindow.xaml.cs

using System.Collections;
using System.Globalization;
using System.IO;
using System.Resources;
using System.Text;
using System.Windows;
using System.Windows.Baml2006;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace Demo01
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            // 获取当前类型的程序集名称
            var resourcesName = this.GetType().Assembly.GetName().Name + ".g";
            // 创建ResourceManager实例
            var manager = new ResourceManager(resourcesName, this.GetType().Assembly);
            // 获取资源集
            var resourceSet = manager.GetResourceSet(CultureInfo.CurrentCulture, true, true);
            // 将资源集中的DictionaryEntry类型转换为列表
            var dictionaryEntries = resourceSet.OfType<DictionaryEntry>().ToList();
            // 遍历所有字典条目
            dictionaryEntries.ForEach(arg =>
            {
                // 使用Baml2006Reader读取BAML数据流
                var reader = new Baml2006Reader((Stream)arg.Value);

                // 使用XamlReader将BAML数据转换为XAML对象
                var win = XamlReader.Load(reader) as Window;

                // 输出窗口的名称
                Console.WriteLine(win.Name);
                MessageBox.Show(win.Name);

            });
        }
    }
}

Demo01\Demo01\MainWindow.xaml

<Window x:Class="Demo01.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:Demo01"
        mc:Ignorable="d"
        Name="theses_words_should_be_read_from_bmal"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <Button Width="100" Height="100" Content="Click" Click="Button_Click"></Button>

    </Grid>
</Window>

标签:baml,读取,Windows,System,Demo01,var,using,wpf,MainWindow
From: https://www.cnblogs.com/zhuoss/p/18504517

相关文章

  • WPF+Mvvm案例实战(五)- 自定义雷达图实现
    文章目录1、项目准备1、创建文件2、用户控件库2、功能实现1、用户控件库1、控件样式实现2、数据模型实现2、应用程序代码实现1.UI层代码实现2、数据后台代码实现3、主界面菜单添加1、后台按钮方法改造:2、按钮添加:3、依赖注入3、运行效果4、源代码获取1、项目准......
  • WPF+MVVM案例实战(六)- 自定义分页控件实现
    文章目录1、项目准备2、功能实现1、分页控件DataPager实现2、分页控件数据模型与查询行为3、数据界面实现3、运行效果4、源代码获取1、项目准备打开项目Wpf_Examples,新建PageBarWindow.xaml界面、PageBarViewModel.cs,在用户控件库UserControlLib中创建用......
  • wpf XAML编译成BAML的过程
    XAML编译成BAML的过程xaml编译成baml,baml是一种压缩文件,为了提高加载速度构造函数中的InitializeComponent()加载baml编译过程在编译过程中,XAML文档最终被转换成BAML(二进制应用程序标记语言)作为资源嵌入到程序集中。当应用程序运行时,会从构造函数的实现方法中提取BAML......
  • wpf program.cs启动程序
    使用Program.cs启动wpf文件Demo00\Demo00\Program.csusingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceDemo00{internalclassProgram{[STAThread]staticvo......
  • wpf 初始项目的入口文件
    wpf项目的入口文件Demo00\Demo00\App.xaml<Applicationx:Class="Demo00.App"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"......
  • npoi读取word 内容控件
    voidMain(){ //打开word文件 XWPFDocumentdocument=null; try { using(FileStreamstream=File.OpenRead(@"15.docx")) { document=newXWPFDocument(stream); } CT_Bodybody=document.Document.body; varcontrols=body.getValueFrom......
  • Qt编程技巧小知识点(5)GPIB缓存区数据读取(升级版)
    文章目录Qt编程技巧小知识点(5)GPIB缓存区数据读取(升级版)小结Qt编程技巧小知识点(5)GPIB缓存区数据读取(升级版)  大端小端的问题,GPIB返回的数据经常是小端数据,而我们转化需要大端数据,看代码,Qt的这个函数很好用哦!代码输入//添加库文件#include<QtDebug>#include<Q......
  • 一个基于.NET8+WPF开源的简单的工作流系统
    项目介绍AIStudio.Wpf.AClient是一个基于WPF(WindowsPresentationFoundation)构建的客户端框架,专为开发企业级应用而设计。该项目目前版本为6.0,进行了全面优化和升级,提供了丰富的功能和模块,以满足不同场景下的开发需求。框架截图项目特点自动升级(待部署):虽然......
  • WPF入门_05命令
    目录1、WPF命令模型具有4个重要元素2、命令类继承3、为什么说WPF命令是路由的4、已定义命令5、使用命令6、自定义命令7、实现可撤销的命令程序WPF命令使得命令源(即命令发送者,也称调用程序)和命令目标(即命令执行者,也称处理程序)分离事件和命令是处理问题的两种方式,它......
  • WPF入门_04绑定
    WPF绑定使得原本需要多行代码实现的功能,现在只需要简单的XAML代码就可以完成之前多行后台代码实现的功能。WPF绑定可以理解为一种关系,该关系告诉WPF从一个源对象提取一些信息,并将这些信息来设置目标对象的属性。目标属性总是依赖属性。然而,源对象可以是任何内容,可以是一个WPF......