zoukankan      html  css  js  c++  java
  • XAML文件动态加载

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    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.Navigation;
    using System.Windows.Shapes;
    using System.IO;
    using System.Xml;
    using System.Windows.Markup;
    using System.Windows.Resources;

    namespace WpfApplication3
    {
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
    public MainWindow()
    {
    InitializeComponent();
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
    xamlLoad2();
    }

    //从字符串中加载样式
    public void xamlLoad1()
    {
    string str = "<Button xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'" +
    " Foreground='LightSeaGreen' FontSize='16pt' Width='128' Height='32'>" +
    " From String Object!</Button>";
    StringReader sr = new StringReader(str);
    XmlTextReader xt = new XmlTextReader(sr);
    object obj = XamlReader.Load(xt);
    this.Content = (obj as Button);
    }
    //从磁盘文件中加载样式
    public void xamlLoad2()
    {
    XmlTextReader xt = new XmlTextReader("styles/test.xaml");
    object o = XamlReader.Load(xt);
    this.Content = o;

    }
    //从资源文件中加载
    public void xamlLoad3()
    {


    Uri uri = new Uri("styles/test.xaml", UriKind.Relative);
    Stream stream = Application.GetResourceStream(uri).Stream;
    object o =XamlReader.Load(stream) as Button;
    this.Content = o;

    }
    //从内容文件中加载,内容文件不会编译到程序中,每次从磁盘动态加载,编译时会自动生成到目录中
    public void xamlLoad4()
    {


    Uri uri = new Uri("/styles/testContent.xaml", UriKind.Relative);
    StreamResourceInfo info = Application.GetContentStream(uri);
    System.Windows.Markup.XamlReader reader = new System.Windows.Markup.XamlReader();
    Button page = (Button)reader.LoadAsync(info.Stream);
    this.Content = page;

    }


    private void Button_Click_1(object sender, RoutedEventArgs e)
    {
    xamlLoad1();
    }

    private void Button_Click_2(object sender, RoutedEventArgs e)
    {
    xamlLoad2();
    }

    private void Button_Click_3(object sender, RoutedEventArgs e)
    {
    xamlLoad3();

    }

    private void Button_Click_4(object sender, RoutedEventArgs e)
    {
    xamlLoad4();
    }
    }
    }

  • 相关阅读:
    koa2 nginx 服务器配置
    Spring Cloud 中OpenFeign的使用(二)
    Spring Cloud中OpenFeign的使用(一)
    Spring Cloud Alibab Sentinel服务端搭建
    asp.net core 读取 appsettings.json 节点值
    c# – AuthenticationHeaderValue与NetworkCredential
    元气
    艾维利时间管理法
    BPM/OA/审批流/工作流
    消息队列
  • 原文地址:https://www.cnblogs.com/HuiLove/p/6058892.html
Copyright © 2011-2022 走看看