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();
    }
    }
    }

  • 相关阅读:
    最短路打印路径
    hdu1874(dijskstra算法和floyd算法)
    最短路径(Dijkstra算法)
    kruskal算法模板(续)
    kruskal算法模板
    最小生成树prim算法
    hdu1879(并查集)
    hdu1875 并查集
    top 1 1
    mvc 母版页中登录注册和问候的处理
  • 原文地址:https://www.cnblogs.com/HuiLove/p/6058892.html
Copyright © 2011-2022 走看看