1.ElementName和Path

使用数据绑定不需要修改我们的资源对象(本例中资源对象是那个滑动条)。我们只需要将这个滑动条的值的范围设置正确:

<Slider x:Name="sliderFontSize" Margin="3"Minimum="1" Maximum="40" Value="10">
</Slider>
<TextBlock Margin="10" Text="Simple Text" x:Name="lblSampleText"FontSize="{Binding ElementName=sliderFontSize, Path=Value}" >
</TextBlock>

数据绑定表达式使用的是XAML标记扩展(因此它使用了花括号)。单词Binding之后跟着的是构造函数的参数(本例中没有),然后是要进行设置的各个属性——本例中是ElementName和Path。ElementName标识着资源元素;Path标记着使用的是资源元素的哪个属性。通过这些设置之后,绑定表达式将Slider.Value属性的值传到了TextBlock.FontSize属性上。

2、margin

我们可以按照左、上、右、下的顺序给控件的每条边单独设置间距宽度:

<Button Margin="5,10,5,10" Content="Button 3"></Button>

3、WrapPanel

要想使用WrapPanel和DockPanel这俩布局容器,我们得先引用组件System.Windows.Controls.Toolkit.dll。(首先得下载Silverlight Toolkit,地址是http://silverlight.codeplex.com)。

组件引用后,我们还需要在标记中映射命名空间,如下所示:

<UserControl x:Class="Layout.WrapAndDock" ...
xmlns:toolkit="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Toolkit">

然后我们就可以使用toolkit前缀来定义WrapPanel和DockPanel类型的元素,比如:

<toolkit:WrapPanel ...></toolkit:WrapPanel>

4、 列宽是ColumnDefinition设置Width属性

列宽是ColumnDefinition设置Width属性,行高则是RowDefinition设置Height属性。比如,下面这段标记给我们展示了如何来设置100像素的绝对宽度:

<ColumnDefinition Width="100"></ColumnDefinition>

如果要用自动尺寸方式,则用“Auto”这个值:

<ColumnDefinition Width="Auto"></ColumnDefinition>

第三种方式,如果要使用比例尺寸,那么要用星号(*):

<ColumnDefinition Width="*"></ColumnDefinition>

5、

GridSplitter

每个窗体程序的用户都见过分割栏(Splitter bars)——一个将窗体的不同部分分离开的可拖拽的分割线。比如,当使用Windows资源管理器的时候,我们会看到左边是个文件夹的列表,右边是选定文件夹的文件列表。我们可以拖动中间的分割栏来改变两边占据空间的比例。

在Silverlight中,我们可以通过在Grid中加一个分割栏这样一个简单的设计让用户能够自己改变行列的尺寸。图3-14显示了一个在两列之间有个分割栏的窗体。通过拖动分割栏,用户便可以修改这两列的相对应的宽度。

6、

全屏模式

下面这段代码实现的点击相应的按钮使应用程序切换到全屏模式:

private void Button_Click(object sender, RoutedEventArgs e)
{Application.Current.Host.Content.IsFullScreen = true;
}

如果想阻止这种行为的发生,我们可以用下面的代码将应用程序的全屏模式“固定”住,即使应用程序失去焦点,它也同样处于全屏模式下。

Application.Current.Host.Content.FullScreenOptions = FullScreenOptions.StaysFullScreenWhenUnfocused;

7、

依赖属性

本质上,依赖属性是一种可以直接设置的属性(比如用代码)或者是一种Silverlight服务(比如数据绑定、样式或者动画)。这种系统的关键特性是这些不同的属性的优先级问题。比如说,动画效果在运行的时候要优先于其它服务。这些相互重叠在一起的因素组成了这个灵活性非常强的系统。依赖属性也赋予了名称——本质上来说,依赖属性取决于多重属性的提供者,每个提供者都有自身的优先等级。

由Silverlight元素所曝露出来的属性大多数都是依赖属性。比如,我们在第1章中已经见过的TextBlock的Text属性、Button的Content属性以及Grid的Background属性——这些都是依赖属性。这暗示了Silverlight依赖属性的一个重要的原则——依赖属性被设计成和普通属性一样的使用方式。这是因为在Silverlight类库中依赖属性经常包裹在普通属性的定义中。

8、

Run对象

在很多情况下,我们可以希望能够多个格式迥异的小段文本组合在一起放在一个TextBlock中。想实现这个效果,我们需要在TextBlock中使用Run对象。下面这段示例代码就是将各个词语用不同的格式来呈现(运行效果如图5-3):

<TextBlock FontFamily="Georgia" FontSize="20" >
This <Run FontStyle="Italic" Foreground="YellowGreen">is</Run> a
<Run FontFamily="Comic Sans MS" Foreground="Red" FontSize="40">test.</Run>
</TextBlock>

9、

字符间距

如果觉得输入的字符串显得有点拥挤,我们可以使用LineHeight属性增加行之间垂直方向的间距(前面已经有所介绍),另外,我们还可以使用CharacterSpacing属性增加同一行内的字符之间水平方向的间距。如下所示:

<TextBlock FontSize="20" CharacterSpacing="100">These letters are spaced out.
</TextBlock>

CharacterSpacing属性的单位值是当前字体大小的1/1000。因此,上例中CharacterSpacing属性值为100,而字体大小是20,最终计算后字间距为2像素(100/1000×20=2)。

silverlight---------------------------相关推荐

  1. 学习使用Bing Maps Silverlight Control(五):离线使用和自定义地图模式

    6 离线使用 在笔记第一部分的时候就提到如果要使用Bing Maps Silverlight Control 进行开发,需要申请一个key,不让会显示一个错误提示出来.但是在实际开发或使用过程中,使用 ...

  2. Silverlight WCF RIA服务(二十三)Silverlight 客户端 4

    DomainDataSource WCF RIA Services提供DomainDataSource控件来简化用户界面和域上下文中数据的交互.通过DomainDataSource,我们可以只是用声明 ...

  3. 【Socket研究】~。~ Scoket开发蛋疼笔记 Silverlight

    客户端连接步骤[Silverlight] [注意] Silverlight 客户端 记得一定是异步连接. 一.连接步骤 1.实例一个Scoket 2.实例套接字 SocketAsyncEventArg ...

  4. Silverlight技术支持谷歌Android

    [计世网消息](刘清河 编译) 当苹果公司没有将Adobe公司的Flash技术集成到iPhone时,就好象已经为其竞争对手微软公司的Silverlight技术提供了一个可乘之机.然而,从目前出现的情况 ...

  5. 跨域部署Silverlight时需要注意的问题

    当我们的Silverlight程序(.xap)发布地址和网页发布地址处于不同服务器上(跨域状态)时,由于安全机制在Silverlight和Javascript调用时会出现一些问题,如:Silverli ...

  6. 创建Silverlight自定义启动画面

    每一款商业的Silverlight项目,为了体现项目个性化,都会有不同的界面设计,项目UI设计的第一步就是创建个性的自定义启动画面,本文将介绍如何创建Silverlight自定义启动画面,也就是经常说 ...

  7. silverlight数据库应用程序开发

    该解决方案使用的是"silverlight导航应用程序+Oracle数据库+WebService服务" 新建silverlight项目GH,同时会自动添加一个GH.Web,在GH. ...

  8. Silverlight:SSL教程

    在Silverlight与WCF进行通信的过程中,数据安全就成为了一个非常关键的因素,如果不作任何限制,那么数据被抓包篡改等情况都是对系统的潜在威胁.本文主要介绍通过SSL配置WCF进行通信. 对于W ...

  9. 兼容Silverlight4的实用的Silverlight可拖放工具类源代码

    开发日常的Silverlight应用程序时,常常要对一个域多个控件实现可拖放的MOUSE操作,在Silverlight中实现拖放的功能其实非常简单,但是为了提高程序功能代码的可复用性,程序员常常喜欢把 ...

  10. Silverlight中文件的生成操作与其对应的获取方法

    文件生成操作: Silverlight里的资源文件(图片.视频.字体.XML.XAML等) 生成操作属性选择不同选项时,文件的生成方式和存储位置会有相应变化,下面说一下几个常用的选项: 1. Page ...

最新文章

  1. Interesting visualization tools for profiling.
  2. 微波人体感应模块 24G 24.125g 感应开关微波传感器模块
  3. oracle怎么设置sql每隔一段时间执行一次_Oracle大规模数据快速导出文本文件
  4. 金融风控实战——不均衡学习
  5. element -ui 表单验证 如果 需要验证的v-model 是对象中的对象 总是提示没有填写....
  6. 【数据结构与算法】之深入解析“买卖股票的最好时机III”的求解思路与算法示例
  7. UVa 1639 (期望) Candy
  8. python智能光环板_学而思编程推出全新智能学习系统,搭配多种硬件
  9. UE4移动平台上基于物理的着色
  10. 小心!智能音箱正在监听你?| 极客头条
  11. 错误一例:expected expression before } token
  12. 从顶会论文看对比学习的应用!
  13. 撰写美国作业使用APA与MLA格式的区别是什么?
  14. 001-三阶魔方-概述及层先法
  15. 九九乘法表c语言编程10乘10,C语言编程九九乘法表
  16. 《过得刚好》 郭德纲
  17. 凯斯西储大学轴承数据介绍及处理
  18. 角位移/倾角/角度传感器如何安装
  19. html -- javascript
  20. div+css使用padding样式和 important标记实现Firefox和IE6处理带float样式的margi

热门文章

  1. pygame按键事件
  2. 2020.6.21P72_OpenCV_几何变换_图像平移_缩放_旋转
  3. 【笔记】The art of research - (讲好故事和论点)
  4. 如何将数字转化为中文大写 java
  5. 成信大807常用函数复习
  6. 信号量机制——哲学家进餐问题
  7. 简单三步,教你快速接入淘宝开放平台,调用官方API
  8. 警惕Pycharm命名问题
  9. 还没抢到票吗?实测两款 GitHub 开源抢票插件,所有坑我们都帮你踩过了
  10. CSDN专家分和博客系统积分获得规则!(转官方)