轉帖|其它|編輯:郝浩|2011-08-30 14:41:46.000|閱讀 668 次
概述:還可以直接從XAML代碼片段中動態創建控件,通過使用XamlReader類的Load方法,該方法需要一個字符串類型的XAML代碼片斷。 XamlReader.Load方法將在內存中創建控件,如果創建成功,將返回一個Object類型的引用,通過類型轉換變為所需的類型。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
還可以直接從XAML代碼片段中動態創建控件,通過使用XamlReader類的Load方法,該方法需要一個字符串類型的XAML代碼片斷。XamlReader.Load方法將在內存中創建控件,如果創建成功,將返回一個Object類型的引用,通過類型轉換變為所需的類型。如果創建失敗否則返回null。下面的示例代碼使用XAML代碼創建一個矩形,如下所示:
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
namespace CreateUIFromXAMLSnippt
{
public partial class Page : Canvas
{
Rectangle rc1;
public void Page_Loaded(object o, EventArgs e)
{
// Required to initialize variables
InitializeComponent();
CreateRectangleFromXAML(100, 100, 200, 200);
//如果需要引用動態創建的控件,需要使用FindName.
rc1 = this.FindName("rc1") as Rectangle;
rc1.MouseLeftButtonDown +=
new MouseEventHandler(rc1_MouseLeftButtonDown);
}
//定義矩形的單擊行為
void rc1_MouseLeftButtonDown(object sender, MouseEventArgs e)
{
rc1.Fill = new SolidColorBrush(Colors.Blue);
}
//從XAML代碼中動態創建矩形
private void CreateRectangleFromXAML
(double X,double Y,double W,double H)
{
//XAML代碼
string s = "<Rectangle Name='rc1'
Canvas.Left='" + X + "' Canvas.Top='" + Y + "' "+ "Width='" +
W + "' Height='" + H + "' Fill='Red' />";
//使用XamlReader類創建矩形
Rectangle rc = (Rectangle)XamlReader.Load(s);
//添加到根畫布中
this.Children.Add(rc);
}
}
}
如果需要引用動態創建的控件,需要注意不能在XAML代碼中使用x:Name屬性,通過為其指定Name屬性,并使用FindName方法,就可以完成對動態創建的控件的引用。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:百度空間