silverlight中的几个冷门标记 {x:Null},d:DesignWidth,d:DesignHeight

{x:Null}:用于设置某属性值为Null,比如<Rectangle Fill="{x:Null}" />,其实就相当于<Rectangle />,个人感觉这个纯属MS的多余设计

另外要注意一个问题:

<Rectangle x:Name="rect" Stroke="Black" Width="90" Height="90" MouseLeftButtonUp="Rectangle_MouseLeftButtonUp" StrokeThickness="10" />

运行时,如果点击矩形中间区域,会发现无法触发Rectangle_MouseLeftButtonUp事件,因为矩形Fill属性为null,没有填充,相当于透明,所以鼠标点击穿透矩形,点到下面的东西上去了

解决办法:设置Fill="#00000000" 即设置一个完全透明的颜色

d:DesignWidth=640,d:DesignHeight=480,这二个标记在blend中特别有用

<UserControl x:Class="MsShowCase.NavItem"
 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"
 Height="640" 
 Width="480"
...

默认情况下,silverlight总会有一个固定的尺寸,要想让其自动扩展,很简单把Height="640",Width="480"删除即可(或设置成Auto),但是这样处理后,用blend再打开该xaml文件,可视区域就为0了,很不方便选取对象,这时我们可以加上这二个标识,

<UserControl x:Class="MsShowCase.NavItem"
 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"
 Height="Auto" 
 Width="Auto"
 d:DesignWidth=640
 d:DesignHeight=480
...

再用blend打开时,会发现可视区域变成640*480了,而运行时即仍然可以自动扩展

时间: 2024-10-30 00:55:31

silverlight中的几个冷门标记 {x:Null},d:DesignWidth,d:DesignHeight的相关文章

Silverlight中的序列化

序列化简言之是这样一种能力:能够把复杂的对象(Object)变成某种格式的字符串(常见的格式有xml,string,二进制文件等),这样可以方便的在各种系统中传输或交换(比喻socket编程中的数据包只能用byte[]传输),接收方得到该字符串后,通过反序列化可以还原为复杂对象,进而调用对象的方法或属性 -- 跟反射有点沾边:) 这里先给出一个WinForm的序列化例子,功能为通过打开文件对话框选择一个文件后,构造一个复杂对象,然后序列化为二进制格式,得到该格式后,再反序列化(还原)为复杂对象

在silverlight中利用socket发送图片或文件

silverlight中的socket通讯支持,让sl开发基于web的聊天工具成为了可能,后来OpenFileDialog,SaveFileDialog的出现,更使得边聊天边传送图片(文件)得以实现,最新的SL4中又加入了摄像头支持,也许不久真的可以用silverlight开发出功能强大的视频聊天系统,目前唯一还没有解决的是p2p问题,根据sl3的sdk文档所述:    Socket 类为网络通信提供了一组方法和属性.Socket 类允许您使用 ProtocolType 枚举中所列出的任何一种通

在Silverlight中使用SmoothStreamingMediaElement创建Smooth Streaming播放器

我在"IIS 7 Smooth Streaming技术在Silverlight 3中的应用 "一文中详细介绍了有关 IIS 7.Smooth Streaming技术以及如何在Silverlight中使用MediaElement控件播放Smooth Streaming视频的内容,在继续本文之前,如果你对什么是Smooth Streaming还存在疑问,你 可以先去看看我的那篇文章,也算作是一个入门吧. 在上一文中我向大家介绍了如何利用现有的MediaElement控件来支持Smooth

Silverlight中使用CompositionInitializer宿主MEF

MEF可以在传统应用程序中使用(包括桌面的Winform.控制台程序和Web的ASP.NET),也 可以在RIA的Silverlight中使用.在Silverlight中只是宿主的方式有所不同,实际上在 Silverlight中也可以像传统应用程序中是方式去宿主,MEF也为Silverlight提供了独特的宿 主方式,使用中需要引用System.ComponentModel.Composition.Initialization.dll动态链 接库. Silverlight中提供了一种新的宿主ME

利用F#在Silverlight中实现并行编程

随着.NET 4的发布,要在.NET平台之上进行并行编程可谓是易如反掌.实际上,微软为大家提供了三种并行编程的基础功能.第一种是提供给C++使用的并发运行时 (Concurrency Runtime);第二种是藉由.NET平台提供给托管语言的一组并行编程函数库(包括TPL.PLINQ和并行编程数据结构等);最后一种就是基于F# 本身的并行编程特性. 然而,由于考虑精简的缘故,当前的CoreCLR并未包含.NET 4中的并行函数库,从而在Silverlight(即使最新的Silverlight 4

Silverlight中的像素和比例缩放

最近在学习Silverlight,也在准备考六级,同时在网上找到的一些Silverlight的教程都是beta1的,在正式版中有很多的问题,所以尝试着通过翻译Jesse Liberty的博客来提高自己,同时也希望通过这样和大家一起学习. 原文地址:http://silverlight.net/blogs/jesseliberty/archive/2008/10/21/sizing-in-silverlight-pixels-and-stars.aspx 注:Star翻译为比例缩放,找了几本字典,

学Silverlight 2系列(21):如何在Silverlight中调用JavaScript

Silverlight中内置了对于HTML.客户端脚本等的支持.很多情况下,我们编 写的Web应用程序中用了一些JavaScript或者AJAX框架,我们希望能够在 Silverlight调用某些脚本方法,或者说在Silverlight中触发某个脚本的执行, 这时就需要用到在Silverlight中调用JavaScript,本文将简单介绍这一内容. 使用GetProperty获取脚本对象 先来看一个简单的例子,在Silverlight测试页面中放入一个div用作显示信 息: <div id=&quo

学Silverlight 2系列(20):如何在Silverlight中与HTML DOM交互(下)

Silverlight中内置了对于HTML.客户端脚本等的支持,本文为如何在 Silverlight 2中与HTML DOM交互第二部分.在第一部分中主要介绍了如何访问 和修改已有的HTML DOM,我们还可以完全创建一个新的DOM元素或者移除一个已 有的DOM元素,除此之外,我们还可以为DOM元素添加事件处理. 创建DOM元素 首先我们来看如何创建一个新的DOM元素,最终的效果如下,当我们在文本框 中输入文字后,单击创建,将在上面的区域中创建一个li元素. 先来定义一下HTML页面,甚至Sil

学Silverlight 2系列(19):如何在Silverlight中与HTML DOM交互(上)

Silverlight中内置了对于HTML.客户端脚本等的支持,本文为如何在 Silverlight 2与HTML DOM进行交互第一部分,访问和修改DOM元素. 访问DOM元素 我们先来看一个简单的示例,如何访问HTML DOM.最终完成的效果如下,我 们将在界面放置两个div,分别为div1和div2,下面绿色的区域为Silverlight部 分,在第一个文本框中输入div的id并点击显示,将在下面显示出对应div上的文 本信息. 首先我们需要对测试页做一下修改,因为默认的Silverlig