使用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
总结:很简单的案例,但是自己按人家写出来发现也有点困难。