首页 > 编程 > C# > 正文

在WPF中动态加载XAML中的控件实例代码

2020-01-24 01:03:59
字体:
来源:转载
供稿:网友

本文实例讲述了在WPF中动态加载XAML中的控件的方法。分享给大家供大家参考,具体如下:

using System;using System.Collections.Generic;using System.Linq;using System.Text;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;/* * 功能:测试WPF中动态加载XAML中的控件 *    并加到指定的子节点中。 * 作者:Kagula * 时间:2012-09-20 * 环境:VS2008 .NET FRAMEWORK 3.5 * 参考资料:[1]《Application=Code+Markup 读书笔记 19》 *        http://space.itpub.net/15123181/viewspace-423015 *      [2]《Pack URIs in Windows Presentation Foundation》 *        http://technet.microsoft.com/en-US/library/aa970069(v=vs.90) */namespace testXAMLLoad{  /// <summary>  /// Interaction logic for Window1.xaml  /// </summary>  public partial class Window1 : Window  {    public Window1()    {      InitializeComponent();      //LoadEmbeddedXaml();      //LoadEmbeddedXaml2();      LoadEmbeddedXaml3();    }    //从字符串中加载    public void LoadEmbeddedXaml()    {      Title = "Load Embedded Xaml";      string strXaml = "<Button xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'" +        " Foreground='LightSeaGreen' FontSize='16pt' Width='128' Height='32'>" +        " From String Object!</Button>";      StringReader strreader = new StringReader(strXaml);      XmlTextReader xmlreader = new XmlTextReader(strreader);      object obj = XamlReader.Load(xmlreader);      grid1.Children.Add((UIElement)obj);    }    //从外部文件中加载 Button控件    public void LoadEmbeddedXaml2()    {      XmlTextReader xmlreader = new XmlTextReader("d://a.xaml");      UIElement obj = XamlReader.Load(xmlreader) as UIElement;      grid1.Children.Add((UIElement)obj);    }    //从资源文件中加载    public void LoadEmbeddedXaml3()    {      //Build Action = Resource,Do not Copy,无相应cs文件      Uri uri = new Uri("/LoadXamlResource.xaml",UriKind.Relative);      Stream stream =Application.GetResourceStream(uri).Stream;      //FrameworkElement继承自UIElement      FrameworkElement obj =XamlReader.Load(stream) as FrameworkElement;      grid1.Children.Add(obj);    }  }}

xaml文件中的清单

<Button xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'  Foreground='LightSeaGreen'  FontSize='16pt'  Width='128'  Height='32'>  From File Object!</Button>

更多关于C#相关内容感兴趣的读者可查看本站专题:《C#程序设计之线程使用技巧总结》、《C#操作Excel技巧总结》、《C#中XML文件操作技巧汇总》、《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算法教程》、《C#数组操作技巧总结》及《C#面向对象程序设计入门教程

希望本文所述对大家C#程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表