4.如何获取动态生成的SL控件的NAME值(二)

试验目的:使用AS动态获取页面所有的控件(这些控件包括动态生成的与直接在XAML里面添加的)
1.as与IS的使用(IS与AS的使用专门用C#补上去)
2.SL页面控件的加载循序,先加载XAML页面定义的控件,再就是加载.CS文件里动态添加的控件


什么是UIElement?
UIElement 是 Silverlight 中具有可视外观并可以处理基本输入的大多数对象的基类。
1.所有继承这个System.Windows.UIElement的,都具有可视化的功能

 

.xaml

 1  < UserControl x:Class = " sl19.MainPage "
 2      xmlns = " http://schemas.microsoft.com/winfx/2006/xaml/presentation "
 3      xmlns:x = " http://schemas.microsoft.com/winfx/2006/xaml "
 4      xmlns:d = " http://schemas.microsoft.com/expression/blend/2008 "
 5      xmlns:mc = " http://schemas.openxmlformats.org/markup-compatibility/2006 "
 6      mc:Ignorable = " d "
 7      d:DesignHeight = " 300 "  d:DesignWidth = " 400 "   >
 8       < Canvas x:Name = " parentCanvas "     Background = " Maroon "   >
 9           < Button x:Name = " mmm "  Margin = " 10 "  Background = " Blue "  Canvas.ZIndex = " 1 "  Canvas.Top = " 150 "  Canvas.Left = " 150 "  Height = " 30 "  Width = " 149 "  Content = " 我是从页面文件添加的 " ></ Button >
10         
11       </ Canvas >
12  </ UserControl >

 

.cs

 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              StringBuilder xaml  =   new  StringBuilder();
22              xaml.Append( " <Button  " );
23              xaml.Append( " xmlns=\ " http: // schemas.microsoft.com/client/2007\" ");
24              xaml.Append( " Canvas.Left=\ " 50 \ "  Canvas.Top=\ " 30 \ "   FontSize=\ " 20 \ "   " );
25              xaml.Append( "  FontWeight=\ " Bold\ "  Content=\ " 动态创建XAML对象\ "  /> " );
26               // 创建textBlock
27              Button button1  =  (Button)XamlReader.Load(xaml.ToString());
28               //   button1.Name = "button1";
29              button1.Click  +=   new  RoutedEventHandler(button1_Click);
30              parentCanvas.Children.Add(button1);
31               // line的xaml文本
32              xaml  =   new  StringBuilder();
33              xaml.Append( " <Line Stroke=\ " Red\ "   " );
34              xaml.Append( " xmlns=\ " http: // schemas.microsoft.com/client/2007\" ");
35              xaml.Append( "  X1=\ " 30 \ "  Y1=\ " 30 \ "   " );
36              xaml.Append( "  X2=\ " 200 \ "  Y2=\ " 200 \ "   StrokeThickness=\ " 3 \ "  /> " );
37               // 创建LINE对象
38              Line line  =  (Line)XamlReader.Load(xaml.ToString());
39              line.Name  =   " line1 " ;
40              parentCanvas.Children.Add(line);
41 
42          }
43           // Click后要执行的方法,已绑定  
44           void  button1_Click( object  sender, RoutedEventArgs e)
45          {
46              Button btn  =  sender  as  Button;     
47           
48              
49              Button btn1;
50              Line line1;
51               foreach  (UIElement tmp_ui  in   this .parentCanvas.Children)
52              {
53                  btn1  =  tmp_ui  as  Button; // 如果得到的对象不是Button,返回是NULL
54                   if  (btn1  !=   null )
55                  {
56                      MessageBox.Show( "  我是一个Button!!!我的显示值是 " +  btn1.Content.ToString());           
57                  }
58                   else   if  (btn1 == null )
59                  {
60                      line1  =  tmp_ui  as  Line;
61                       if  (line1 != null )
62                      {
63                          MessageBox.Show( "  我是一个LINE!!!我的NAME值是 "   +  line1.Name.ToString());
64                      }
65                 }
66              }           
67          }
68      }
69  }
70 

 

最后结论:
第一种获取动态生成的控件是:
  btn.Content += "-" + tmp_ui.GetValue(NameProperty).ToString();// tmp_ui.GetValue(ContentProperty).ToString();
第二种是AS IS转换控件btn1 = tmp_ui as Button;  转换为自己想要的控件
                

 

转载于:https://www.cnblogs.com/muer/archive/2010/05/21/1741150.html

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.m或d论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 、1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。、资源 5来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。、资 5源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值