彩票走势图

Silverlight从XAML代码中创建控件

转帖|其它|编辑:郝浩|2011-08-30 14:41:46.000|阅读 645 次

概述:还可以直接从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@pclwef.cn

文章转载自:百度空间

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP