.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">
i-Yc]o4c6X0<
Buttonx:Name="toggleButton"Background="Red"Width="200"Height="80"
lD'i7u:f)q.P+oVT0
Canvas.Top="80"Canvas.Left="150"Content="Toggle Full Screen"
[U+@ EZ^5W]X0
FontSize="20"Click="toggleButton_Click"/>
~sT yK.N0<
Imagex:Name="image"Source="smile_6.png"
5UlD)d+WUGVK8T0
Canvas.Top="100"Canvas.Left="40"></Image>ITPUB个人空间I"a#PD2a"wyZ(fE
</
Canvas>

引入命名空间

usingSystem.Windows.Interop;

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

private voidtoggleButton_Click(objectsender,RoutedEventArgse)
M8v]6XYJp Zx*z0{ITPUB个人空间1n/w/z[:M
ContentcontentObject =Application.Current.Host.Content;ITPUB个人空间 a;ZM's*L:Fj!G
contentObject.IsFullScreen = !contentObject.IsFullScreen;ITPUB个人空间#s'Xd"K!u4N
}

获取当前的Silverlight插件“Content”对象,并设置IsFullScreen属性。运行后单击按钮将会变为全屏模式,再次单击按钮(或者按Esc键)返回普通模式。ITPUB个人空间@;@/p!tfG#C
ITPUB个人空间*m1jI(M/`r6\

捕获相关事件

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

publicPage()ITPUB个人空间%l4t$jsC;b	x,u#nd
{ITPUB个人空间[5e?;n7S!hr5r x7r T
InitializeComponent();
;kARkJ C0Application.Current.Host.Content.FullScreenChanged +=newEventHandler(Content_FullScreenChanged);
iwCV$c0}

实现事件处理

private voidContent_FullScreenChanged(objectsender,EventArgse)
b#H4cy#ul$Wi6b0{
,QB,r6LZ7lH r/R0ContentcontentObject =Application.Current.Host.Content;ITPUB个人空间t4N9U5yl)\Wh)]+UQ
if(contentObject.IsFullScreen)
x8T1c fA4uaWD0{
4lo{D'e0toggleButton.Background =newSolidColorBrush(Colors.Green);ITPUB个人空间(z HV(_'D*H#B5H
toggleButton.Content ="Full Screen Mode";ITPUB个人空间)z`RIt:w
}
,\ U~K]0else
ViOA8cw#?0
{ITPUB个人空间8B3G#O%zJ O@;wh0F
toggleButton.Background =newSolidColorBrush(Colors.Red);ITPUB个人空间~p}h0E)r2I2SGg+{R
toggleButton.Content ="Normal Mode";ITPUB个人空间:M1w(N:t#J9PG/FCw
}ITPUB个人空间'o:wWyy8E'_%_N}
}

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


5O s j&AB)yl8L0切换为普通模式:
AvUn I.t0
W'|8nB;j;h0ITPUB个人空间!se+O4u u$f

完整的代码如下:

public partial classPage:UserControl
A]3b N'^:x/e^+dl(`0
{ITPUB个人空间{#Le'Q#B/\{D"O
publicPage()ITPUB个人空间,PP7~7u$krR
{
BS P/wPh&e9k0InitializeComponent();
Dl0Mm3Sypplication.Current.Host.Content.FullScreenChanged +=newEventHandler(Content_FullScreenChanged);ITPUB个人空间0cNnQ ib
}
7X$fZWiH+{0ITPUB个人空间hZc0eO
private voidtoggleButton_Click(objectsender,RoutedEventArgse)
vG2aI] P1S%BC0{
;D#Aj,J,B&K4G9j0ContentcontentObject =Application.Current.Host.Content;
)Wj"M'x6T(@'v%{0contentObject.IsFullScreen = !contentObject.IsFullScreen;ITPUB个人空间;X fD$x2X%S/c
}ITPUB个人空间_*Q!BCI@}*v

L7~C W}9pL!eY0private voidContent_FullScreenChanged(objectsender,EventArgse)
w1G2k/J~j"?0{ITPUB个人空间,c,h+O}w^
ContentcontentObject =Application.Current.Host.Content;ITPUB个人空间!YT"@D a7`
if(contentObject.IsFullScreen)
$fuT$?8W5\e0{
H7V%g%too"\s0toggleButton.Background =newSolidColorBrush(Colors.Green);
eEf P%|,q-e0toggleButton.Content ="Full Screen Mode";ITPUB个人空间N(b3I+n#`X2q
}ITPUB个人空间U:C7_;v(JR g
elseITPUB个人空间 tAA8n)Y|*D1Bq4HF h
{
4P` R'kQ0toggleButton.Background =newSolidColorBrush(Colors.Red);ITPUB个人空间 V(G;n7k n+_Jj#c
toggleButton.Content ="Normal Mode";
O r yV%cD(]9[h }0}
-H0u5p/hs0}
*K g/fd0N#Eo$e0}

结束语

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

作者:TerryLee
/j#B%P&? U `O0出处: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