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

  • 相关阅读:
    关于linux命令 cp,rm,mv执行时是否询问的问题,不同用户有不同的别名设置
    用jquery根据json动态创建多级菜单导航(by https://www.cnblogs.com/fatty-yu/p/7088955.html)
    前台向后台传值的两种方法 以及 从后台获取数据的方法
    “加载更多”功能如何实现
    AngularJS的主要组成部分:
    数组与字符串的相互转化
    angular过滤器的使用 By http://www.tuicool.com/articles/ueUZBv
    transclude
    内嵌模版 template 原创
    导航栏选中效果 ng-repeat
  • 原文地址:https://www.cnblogs.com/HuiLove/p/6058892.html
Copyright © 2011-2022 走看看