SilverLight动态加载控件<转>
使用SilverLight动态加载控件XamlReader.Load的使用
1.生明一个StringBuilder用于连接字符串
2.创建命名空间(以及相应属性);
2.创建控件使用XamlReader.Load
3.加载到面板上面

1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Net;
5 using System.Windows;
6 using System.Windows.Controls;
7 using System.Windows.Documents;
8 using System.Windows.Input;
9 using System.Windows.Media;
10 using System.Windows.Media.Animation;
11 using System.Windows.Shapes;
12 using System.Text;
13 using System.Windows.Markup;
14 namespace sl19
15 {
16 public partial class MainPage : UserControl
17 {
18 public MainPage()
19 {
20 InitializeComponent();
21 ////textBlock里面的文本
22 StringBuilder xaml = new StringBuilder();
23 xaml.Append("<TextBlock ");
24 xaml.Append("xmlns=\"http://schemas.microsoft.com/client/2007\" ");
25 xaml.Append("Canvas.Left=\"50\" Canvas.Top=\"30\" FontSize=\"50\" ");
26 xaml.Append(" FontWeight=\"Bold\" Text=\"动态创建XAML对象\" />");
27 //创建textBlock
28 TextBlock textBlock = (TextBlock)XamlReader.Load(xaml.ToString());
29 parentCanvas.Children.Add(textBlock);
30 //line的xaml文本
31 xaml= new StringBuilder();
32 xaml.Append("<Line Stroke=\"Red\" ");
33 xaml.Append("xmlns=\"http://schemas.microsoft.com/client/2007\" ");
34 xaml.Append(" X1=\"30\" Y1=\"30\" ");
35 xaml.Append(" X2=\"200\" Y2=\"200\" StrokeThickness=\"3\" />");
36 //创建LINE对象
37 Line line = (Line)XamlReader.Load(xaml.ToString());
38 parentCanvas.Children.Add(line);
39 }
40 }
41 }
42
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Net;
5 using System.Windows;
6 using System.Windows.Controls;
7 using System.Windows.Documents;
8 using System.Windows.Input;
9 using System.Windows.Media;
10 using System.Windows.Media.Animation;
11 using System.Windows.Shapes;
12 using System.Text;
13 using System.Windows.Markup;
14 namespace sl19
15 {
16 public partial class MainPage : UserControl
17 {
18 public MainPage()
19 {
20 InitializeComponent();
21 ////textBlock里面的文本
22 StringBuilder xaml = new StringBuilder();
23 xaml.Append("<TextBlock ");
24 xaml.Append("xmlns=\"http://schemas.microsoft.com/client/2007\" ");
25 xaml.Append("Canvas.Left=\"50\" Canvas.Top=\"30\" FontSize=\"50\" ");
26 xaml.Append(" FontWeight=\"Bold\" Text=\"动态创建XAML对象\" />");
27 //创建textBlock
28 TextBlock textBlock = (TextBlock)XamlReader.Load(xaml.ToString());
29 parentCanvas.Children.Add(textBlock);
30 //line的xaml文本
31 xaml= new StringBuilder();
32 xaml.Append("<Line Stroke=\"Red\" ");
33 xaml.Append("xmlns=\"http://schemas.microsoft.com/client/2007\" ");
34 xaml.Append(" X1=\"30\" Y1=\"30\" ");
35 xaml.Append(" X2=\"200\" Y2=\"200\" StrokeThickness=\"3\" />");
36 //创建LINE对象
37 Line line = (Line)XamlReader.Load(xaml.ToString());
38 parentCanvas.Children.Add(line);
39 }
40 }
41 }
42
总结:很简单的案例,但是自己按人家写出来发现也有点困难。
原文地址:http://www.cnblogs.com/muer/archive/2010/05/18/1738486.html
分类:
SilverLight
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
2009-05-18 sql server 2005的一些动态函数