silverlight---------------------------

来源:互联网 发布:凌慕枫叶知秋全文免费 编辑:程序博客网 时间:2024/05/23 21:11

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)。


0 0