vs2010 学习Silverlight学习笔记(8):使用用户控件

概要:

  这个类似于封装控件样式。不过封装的是整个或是多个控件罢了,然后用的时候就可以直接引用过来了。

创建用户控:

  这个也很简单,不过有几个地方需要注意下。这个就不照抄了,咱们也自己写一个。
  步骤:
  1.在SilverlightApplication中添加SilverlightUserControl。
  2.发现新建的是:
  
   打开看一下,这个文件跟MainPage一样一样的。但是你不能把它当做MainPage用,如果你想用的话,你要到App.xaml
  中修改启动
  
private void Application_Startup(object sender, StartupEventArgs e)
{
this.RootVisual = new MainPage();
}



 




3.在SilverlightControl1.xaml中添加代码


ContractedBlock.gifExpandedBlockStart.gif代码


<Grid x:Name="LayoutRoot" Background="#46461F">
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Text="账户"
Width
="50" Height="20"></TextBlock>
<TextBox Grid.Row="0" Grid.Column="1" Width="200" Height="20"></TextBox>
<TextBlock Grid.Row="1" Grid.Column="0" Text="密码"
Width
="50" Height="20"></TextBlock>
<TextBox Grid.Row="1" Grid.Column="1" Width="200" Height="20"></TextBox>
<Button Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Content="提交"
Background
="Orange" Width="200" Height="100"></Button>
</Grid>


4.在MainPage.xaml添加代码


ContractedBlock.gifExpandedBlockStart.gif代码


<UserControl x:Class="SilverlightAppDemo10.MainPage"
xmlns:myControl
="clr-namespace:SilverlightAppDemo10"
xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d
="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc
="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable
="d"
d:DesignHeight
="300" d:DesignWidth="400">

<Grid x:Name="LayoutRoot" Background="White">
<myControl:SilverlightControl1 x:Name="mycon"></myControl:SilverlightControl1>
</Grid>
</UserControl>



 



主要就是:
    注册:xmlns:myControl="clr-namespace:SilverlightAppDemo10"      
    使用或引用:<myControl:SilverlightControl1 x:Name="mycon"></myControl:SilverlightControl1>
    这些代码vs会出现输入提示的。。。
  5.看看效果。我晕,还真难看。。。
    2010051014343560.png

添加用户控件属性:

哎,本想show一下asp.net控件开发知识的。结果没成功,把代码贴上了。我会继续研究原因的,也请知道的朋友告诉我一下。
SilverlightControl.xaml代码:
ContractedBlock.gifExpandedBlockStart.gif代码
<Canvas x:Name="LayoutRoot" Background="White">
<TextBlock x:Name="txtb" Canvas.Left="20" Canvas.Top="50" Width="100" Height="20" Text=""></TextBlock>
<TextBox Canvas.Left="150" Canvas.Top="50" Width="200" Height="20"></TextBox>
</Canvas>



SilverlightControl.xaml.cs代码:

ContractedBlock.gifExpandedBlockStart.gif代码
public string TextMessage
{
get
{
return this.txtb.Text!=""?this.txtb.Text:"还没有定义属性";
}
set
{
this.txtb.Text = value;
}
}


MainPage.xaml代码:




<Grid x:Name="LayoutRoot" Background="White">
<myControl:SilverlightControl1 x:Name="myCon" TextMessage="没成功啊"></myControl:SilverlightControl1>
</Grid>



 



运行一下:

2010051014351291.png

我想的是,假如没有设置Text,就会显示:还没有定义属性 ,设置后就会显示设置的属性。可是这个Silverlight机制我不太懂,
弄巧成拙了。

动态添加用户控件:

  时间不够了,先把TerryLee的贴上。回头我再改。另外我在想既然可以动态添加,是不是也可以动态减去?
这样的话,页面岂不是花样百出了?!我会明天继续。。
1.用户控件可以动态的添加到页面中,修改一下Page.xaml中的XAML代码,放入一个Canvas作为用户控件的容器。
<Grid x:Name="LayoutRoot" Background="#46461F">
    <Canvas x:Name="ContainerCanvas">
       
    </Canvas>
</Grid>
 编写添加用户控件代码:
private void LayoutRoot_Loaded(object sender, RoutedEventArgs e)
{
    ConfirmBox confirmbox = new ConfirmBox();

 

    confirmbox.Message = "动态添加用户控件成功!";

    ContainerCanvas.Children.Add(confirmbox);
}

后记:

  现在有两个问题:
  1.动态修改用户控件属性,即上面那个代码中get{}set{}为什么不能成功?怎样才能成功?
  2.能否动态卸载控件?
这篇是我昨晚写的,不过关机的时候忘记保存了。。今天重做一下,传了上来。
今天是我生日,我出去玩了。晚上回来我会继续研究者两个问题。
总目录
上一篇:vs2010 学习Silverlight学习笔记(7):控件样式与模板
下一篇:vs2010 学习Silverlight学习笔记(9):使用用户控件(2)

转载于:https://www.cnblogs.com/yaoge/archive/2010/05/10/1731739.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/495916.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

群雄逐鹿,谁将赢得5G时代的物联网战争?

来源&#xff1a;IT港摘要&#xff1a;5G时代的物联网机遇&#xff0c;是一次重大产业变革机会&#xff0c;谁都不想错过&#xff0c;但谁能享受到这波红利&#xff0c;我们还需拭目以待。日本首富&#xff0c;软银集团创始人孙正义是全球科技界的传奇&#xff0c;他曾投资了两…

Java8 Stream详解~映射(map/flatMap)

映射&#xff0c;可以将一个流的元素按照一定的映射规则映射到另一个流中。分为map和flatMap&#xff1a; map&#xff1a;接收一个函数作为参数&#xff0c;该函数会被应用到每个元素上&#xff0c;并将其映射成一个新的元素。 flatMap&#xff1a;接收一个函数作为参数&…

Scrapy-redis 源码分析 及 框架使用

From&#xff1a;https://blog.csdn.net/weixin_37947156/article/details/75044971 From&#xff1a;https://cuiqingcai.com/6058.html Scrapy-redis github&#xff1a;https://github.com/rmax/scrapy-redis scrapy-redis分布式爬虫框架详解&#xff1a;https://segmentfa…

Java8 Stream详解~归约(reduce)

归约&#xff0c;也称缩减&#xff0c;顾名思义&#xff0c;是把一个流缩减成一个值&#xff0c;能实现对集合求和、求乘积和求最值操作。 「案例一&#xff1a;求Integer集合的元素之和、乘积和最大值。」 public class StreamTest {public static void main(String[] args) …

人工智能除了创造新材料还能预测化学反应性能

来源&#xff1a; 材料牛摘要&#xff1a; 在材料化学领域人工智能也在发挥着越来越重要的作用&#xff0c;往往研究人员想尽脑汁做不出来的东西它可以经过成千上万次的计算给出最优答案。【引言】机器学习方法正在成为众多学科科学探究的一部分。 机器学习&#xff08;ML&…

推荐|深度学习领域引用量最多的前20篇论文简介

来源&#xff1a;全球人工智能作者&#xff1a;Pedro Lopez&#xff0c;数据科学家&#xff0c;从事金融与商业智能。译者&#xff1a;海棠&#xff0c;审阅&#xff1a;袁虎。深度学习是机器学习和统计学交叉领域的一个子集&#xff0c;在过去的几年里得到快速的发展。强大的开…

Java8 Stream详解~收集(collect)

collect&#xff0c;收集&#xff0c;可以说是内容最繁多、功能最丰富的部分了。从字面上去理解&#xff0c;就是把一个流收集起来&#xff0c;最终可以是收集成一个值也可以收集成一个新的集合。 1 归集(toList/toSet/toMap) 因为流不存储数据&#xff0c;那么在流中的数据完…

英国上议院AI报告:没中美有钱,但我可以主导道德游戏规则设定

来源&#xff1a;网络大数据随着全球各国政府纷纷计划推出 AI 驱动下的未来&#xff0c;英国正准备承担一些学术和道德上的责任。最近&#xff0c;英国上议院 (House of Lords) 发布了一份183页的 报告《AI in the UK: ready, willing and able?》(《人工智能在英国&#xff1…

Java8 Stream详解~ 提取/组合

流也可以进行合并、去重、限制、跳过等操作。 public class StreamTest {public static void main(String[] args) {String[] arr1 { "a", "b", "c", "d" };String[] arr2 { "d", "e", "f", "g&…

Scrapy 下载器 中间件(Downloader Middleware)

Scrapy 下载器中间件官方文档&#xff1a;https://scrapy-chs.readthedocs.io/zh_CN/1.0/topics/downloader-middleware.html 官方 英文 文档&#xff1a;http://doc.scrapy.org/en/latest/topics/downloader-middleware.html#topics-downloader-middleware Scrapy 扩展中间件…

15 个 JavaScript Web UI 库

转载http://news.csdn.net/a/20100519/218442.html 几乎所有的富 Web 应用都基于一个或多个 Web UI 库或框架&#xff0c;这些 UI 库与框架极大地简化了开发进程&#xff0c;并带来一致&#xff0c;可靠&#xff0c;以及高度交互性的用户界面。本文介绍了 15 个非常强大的 Java…

2018年技术展望--中文版

来源&#xff1a;199IT互联网数据中心每年&#xff0c;《埃森哲技术展望》报告融合顶尖技术研究团队、行业领袖以及全球数据调研结果&#xff0c;发布未来三年内或将对各行各业产生重大影响的技术趋势判断&#xff0c;作为企业布局新战略的指导。2018年的《埃森哲技术展望》报告…

彻底搞懂 Scrapy 的中间件

彻底搞懂Scrapy的中间件&#xff08;一&#xff09;&#xff1a;https://www.cnblogs.com/xieqiankun/p/know_middleware_of_scrapy_1.html 彻底搞懂Scrapy的中间件&#xff08;二&#xff09;&#xff1a;https://www.cnblogs.com/xieqiankun/p/know_middleware_of_scrapy_2.h…

华为:5G技术前景堪忧,运营商将很难从5G赚钱

来源&#xff1a;FT中文网、5G作者&#xff1a;卢卡斯、法尔兹丨英国《金融时报》。未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能&#xff0c;互联网和脑科学交叉研究机构。未来智能实验室的主要工作包括&#xff1a;建立AI智能系统智商评测体系&#xff0…

解决log4j多个日志都写到一个文件

之前客户端程序由于Websockt包依赖的log4j&#xff0c;就用log4j写日志了&#xff0c;Web用的log4j2没毛病。用log4j的多个logger的日志都写到一个文件里了&#xff0c;查了很多资料都没解决。今天闲了解决一下。 最后好使的配置 # 设置日志根 log4j.rootLogger INFO,Except…

Scrapy 爬虫去重效率优化之 Bloom Filter的算法的对接

From&#xff1a;https://cloud.tencent.com/developer/article/1084962 Python分布式爬虫打造搜索引擎Scrapy精讲—将bloomfilter(布隆过滤器)集成到scrapy-redis中https://www.cnblogs.com/adc8868/p/7442306.html scrapy redis bloomfilter &#xff1a;https://github.co…

为什么 AI 工程师要懂一点架构?

作者 | 王咏刚&#xff08;公众号ID&#xff1a;ban-qing-ren&#xff09;AI 时代&#xff0c;我们总说做科研的 AI 科学家、研究员、算法工程师离产业应用太远&#xff0c;这其中的一个含义是说&#xff0c;搞机器学习算法的人&#xff0c;有时候会因为缺乏架构&#xff08;In…

CompletableFuture详解~CompletionStage

CompletableFuture 分别实现两个接口 Future与 CompletionStage。 Future 接口大家都比较熟悉&#xff0c;这里主要讲讲 CompletionStage。 CompletableFuture 大部分方法来自CompletionStage 接口&#xff0c;正是因为这个接口&#xff0c;CompletableFuture才有如此强大功能…

Python 异步 IO 、协程、asyncio、async/await、aiohttp

From &#xff1a;廖雪峰 异步IO &#xff1a;https://www.liaoxuefeng.com/wiki/1016959663602400/1017959540289152 Python Async/Await入门指南 &#xff1a;https://zhuanlan.zhihu.com/p/27258289 Python 生成器 和 yield 关键字&#xff1a;https://blog.csdn.net/free…

智能语音简史:这场技术革命从哪开始?

来源&#xff1a;与非网1952年&#xff0c;贝尔实验室&#xff08;Bell Labs&#xff09;制造一台6英尺高自动数字识别机“Audrey”&#xff0c;它可以识别数字0&#xff5e;9的发音&#xff0c;且准确度高达90&#xff05;以上。并且它对熟人的精准度高&#xff0c;而对陌生人…