热门:网页模板.net视频教程JQueryMVCjsonExtJs源码示例三级联动JQuery菜单
您现在的位置:.Net中文社区>> Silverlight>>正文内容

Silverlight 动态创建Xaml

发布时间:2011年01月25日点击数: 佚名

这几天一直看Silverlight的相关知识,因为我们现在的项目中要画地铁图,本来是用C#来画的,可以效果不好看,我就想试着用Silverlight来画。这样效果可能会好。

     用Silverlight来画,就得动态的创建Xaml。在网上找相关资料,可是这方面的比较少。

大家可以看一下上面的相关内容。

我要做的是直接创建和用XML.Linq来创建。两种方法。

先看代码

 

  1. public SilverlightControl1() 
  2.         { 
  3.             InitializeComponent(); 
  4.              
  5.             //通过Xml Linq来创建Xaml 
  6.             XElement textBlock1 = XElement.Parse(@"<TextBlock xmlns='http://schemas.microsoft.com/client/2007' xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' TextWrapping= 'Wrap' Width = '400' Canvas.Top = '10' Text=''/>"); 
  7.  
  8.             XElement rec = XElement.Parse(@"<Rectangle xmlns='http://schemas.microsoft.com/client/2007' xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' Fill='#FF24249D' Height='96' Canvas.Left='120' Stroke='Black' Canvas.Top='96' Width='144'/>"); 
  9.  
  10.             textBlock1.LastAttribute.SetValue("测试"); 
  11.  
  12.             myCanvas.Children.Add(XamlReader.Load(textBlock1.ToString()) as UIElement); 
  13.             myCanvas.Children.Add(XamlReader.Load(rec.ToString()) as UIElement); 
  14.  
  15.             //直接创建Xaml 
  16.             string test = @"<Rectangle xmlns='http://schemas.microsoft.com/client/2007' xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' Fill='#FF0000' Height='96' Canvas.Left='280' Stroke='Black' Canvas.Top='96' Width='144'/>"
  17.             Rectangle r = XamlReader.Load(test) as Rectangle; 
  18.             myCanvas.Children.Add(r); 
  19.         } 

 

记得一定要加上

  1. xmlns='http://schemas.microsoft.com/client/2007' xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' 

这句话,不然会报错的。我之前报错就是这个问题!


 

 然后来看一下效果图。其实很简单的,大家注意看一下代码,试着做一下就知道了。

有关Silverlight 动态创建Xaml就写到这里

本站热点业务

更多模板/案例展示

关于我们 | 联系我们 | 团队日志 | 网站地图 | 网站合作