.NEt专家博客!
【李会军】一步一步学Silverlight 2系列(7):全屏模式支持
概述
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+oVT0Canvas.Top="80"Canvas.Left="150"Content="Toggle Full Screen"
[U+@ EZ ^5W]X0FontSize="20"Click="toggleButton_Click"/>
~sT yK.N0<Imagex:Name="image"Source="smile_6.png"
5UlD)d+WUGVK8T0Canvas.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();
;kARkJC0Application.Current.Host.Content.FullScreenChanged +=newEventHandler(Content_FullScreenChanged);
iwCV$c0}
实现事件处理
private voidContent_FullScreenChanged(objectsender,EventArgse)
b#H4cy#ul$Wi6b0{
,Q B,r6LZ7lH r/R0ContentcontentObject =Application.Current.Host.Content;ITPUB个人空间t4N9U5y l)\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%zJO@;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切换为普通模式:
AvUnI.t0

W'|8nB;j;h0ITPUB个人空间!se+O4uu$f
完整的代码如下:
public partial classPage:UserControl