.NEt专家博客!

【李会军】一步一步学Silverlight 2系列(7):全屏模式支持

上一篇 / 下一篇  2008-04-11 19:25:17

概述

Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython,对JSON、Web Service、WCF以及Sockets的支持等一系列新的特性。《一步一步学Silverlight 2系列》文章带您快速进入Silverlight 2开发。

本文为系列文章第七篇,介绍如何在Silverlight 2中使用全屏模式。

实现全屏模式

全屏模式有时候是非常有用的,在Silverlight中,提供了很好的支持。实现起来也非常的简单,其实只有一行代码,编写一个简单的XAML。

<CanvasBackground="#46461F">ITPUB个人空间.Q(qU]e[
<
Buttonx:Name="toggleButton"Background="Red"Width="200"Height="80"ITPUB个人空间a{fi"P!v
Canvas.Top="80"Canvas.Left="150"Content="Toggle Full Screen"ITPUB个人空间NEFjZu:t/C
FontSize="20"Click="toggleButton_Click"/>ITPUB个人空间 [9Z^d G:h"bE
<
Imagex:Name="image"Source="smile_6.png"ITPUB个人空间)Xi#Y7UV*K;W\0H
Canvas.Top="100"Canvas.Left="40"></Image>ITPUB个人空间3sL8gwk)kpQ
</
Canvas>

引入命名空间

usingSystem.Windows.Interop;

在按钮单击事件中添加实现代码。

private voidtoggleButton_Click(objectsender,RoutedEventArgse)
)b]"[ @9`6[J0{
4K(O_L%?9`j#ORQ0ContentcontentObject =Application.Current.Host.Content;ITPUB个人空间YVp[FO |/G
contentObject.IsFullScreen = !contentObject.IsFullScreen;ITPUB个人空间3] _3w4n?6^U
}

获取当前的Silverlight插件“Content”对象,并设置IsFullScreen属性。运行后单击按钮将会变为全屏模式,再次单击按钮(或者按Esc键)返回普通模式。ITPUB个人空间&|Jx6Li;l _dl

_UQPs@o0

捕获相关事件

有时候,我们需要在全屏模式和普通模式之间切换时,添加一个其它的代码,这时可以使用事件FullScreenChanged。

publicPage()
L LKn r0{
M#Y\l7}0InitializeComponent();
&a UcN4DN#i0Application.Current.Host.Content.FullScreenChanged +=newEventHandler(Content_FullScreenChanged);
TOO+oO0}

实现事件处理

private voidContent_FullScreenChanged(objectsender,EventArgse)
5^ U)l0ebh0{
9ji{"l0e0J:a LO y0ContentcontentObject =Application.Current.Host.Content;ITPUB个人空间,Y7U.GBQK1^/o,Y6aQ
if(contentObject.IsFullScreen)ITPUB个人空间 ]7j/|$@/~I
{
~\#fl-N1{0toggleButton.Background =newSolidColorBrush(Colors.Green);ITPUB个人空间y0vJZ(wO-m gT;l
toggleButton.Content ="Full Screen Mode";ITPUB个人空间,v$w o8tD)y/V(L
}ITPUB个人空间D-G,p'zv}i)^
else
Jg%@es0
{ITPUB个人空间R V%jgg"}
toggleButton.Background =newSolidColorBrush(Colors.Red);
W9g;y8y0_7bDk0toggleButton.Content ="Normal Mode";ITPUB个人空间-Ma5G5Rr{}
}
k.b{&?r\-C!w0}

在普通模式和全屏模式之间切换时,改变按钮的背景色和文字。运行后点击按钮:


M5sI-}+k!pK0切换为普通模式:
_.EDX zb0ITPUB个人空间'K5D9D,Hq7\u3M
ITPUB个人空间"UTke+mET,y

完整的代码如下:

public partial classPage:UserControlITPUB个人空间d`"bX5L4pvV
{ITPUB个人空间B[9R\t9U@\J
publicPage()
P sH!y8Up0{ITPUB个人空间%hDi*t@y2I
InitializeComponent();
a}x ~-x!T0Application.Current.Host.Content.FullScreenChanged +=newEventHandler(Content_FullScreenChanged);
{0vw*A_-J;]0}ITPUB个人空间.g Z(|P(o3p

-w4y1JP9l0nn0private voidtoggleButton_Click(objectsender,RoutedEventArgse)
qD'{G l-CL0{ITPUB个人空间VzueC?"ZJ
ContentcontentObject =Application.Current.Host.Content;
tm%G7[+nD)L5l0contentObject.IsFullScreen = !contentObject.IsFullScreen;ITPUB个人空间vhA0erS+f
}
X i? k$PCh7L!Az#R0ITPUB个人空间PI)n _|,efH H
private voidContent_FullScreenChanged(objectsender,EventArgse)ITPUB个人空间ig1G M3@!bV\
{
H0UKY;x%r|2l;Q7_0ContentcontentObject =Application.Current.Host.Content;
9I6H g%Fr r0if(contentObject.IsFullScreen)ITPUB个人空间/u O(C4ONk6A2pu
{
&Pk:M%gK'cgty0toggleButton.Background =newSolidColorBrush(Colors.Green);ITPUB个人空间4lW1spP&h+uT
toggleButton.Content ="Full Screen Mode";ITPUB个人空间(J0X6B AS} nc]
}
5{5R vE4fp.a&o0else
~J&ON ] z-A2G V.T"}0
{
l{b0Kr0toggleButton.Background =newSolidColorBrush(Colors.Red);
M1|%Jh6S| We@3C7C0toggleButton.Content ="Normal Mode";ITPUB个人空间+V7ZrSL4D
}ITPUB个人空间"?Cj\3R3Ga6^i
}ITPUB个人空间yq O`ctM
}

结束语

本文简单介绍了Silverlight 2中对于全屏模式的支持,你可以从这里下载本文示例代码。

作者:TerryLeeITPUB个人空间[H){#Q"{
出处:http://terrylee.cnblogs.com

TAG:

引用 删除 Guest   /   2009-06-03 14:25:57
5
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar