在WPF中动态加载XAML中的控件实例代码
作者:kagula 时间:2023-06-23 12:27:30
本文实例讲述了在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#程序设计有所帮助。
标签:WPF,控件
0
投稿
猜你喜欢
C#实现简易点餐功能
2021-10-20 22:14:31
Android Studio实现简易计算器(表格布局TableLayout)
2021-11-17 23:20:07
深入第K大数问题以及算法概要的详解
2022-05-22 16:52:29
java实现在线聊天系统
2021-07-30 08:20:54
Java后端Tomcat实现WebSocket实例教程
2023-08-22 17:31:09
详解使用IntelliJ IDEA新建Java Web后端resfulAPI模板
2023-12-14 09:26:04
Java工具类DateUtils实例详解
2022-08-22 00:40:35
C# websocket及时通信协议的实现方法示例
2023-11-16 05:14:48
C#开发之Socket网络编程TCP/IP层次模型、端口及报文等探讨
2023-03-28 14:49:53
Springboot Session共享实现原理及代码实例
2022-12-16 03:29:52
基于C#实现图片合成功能
2022-08-23 07:21:13
Android的Service应用程序组件基本编写方法
2023-12-17 04:22:00
C#实现微信跳一跳小游戏的自动跳跃助手开发实战
2022-12-11 02:49:08
Android开发Popwindow仿微信右上角下拉菜单实例代码
2023-07-17 19:54:09
Android检测Activity或者Service是否运行的方法
2021-09-03 00:52:00
Spring Cloud Alibaba Nacos 入门详解
2022-02-23 12:29:09
eclipse实现DSA数字签名
2023-08-24 19:11:37
C# WinForm导出Excel方法介绍
2022-12-01 13:25:57
JAVA IDEA 打开assert 设置方式
2022-08-19 13:48:49
Unity调取移动端的麦克风进行录音并播放
2023-06-04 22:18:05