.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">
m+Js$k2?6y,}4wM0<
Buttonx:Name="toggleButton"Background="Red"Width="200"Height="80"ITPUB个人空间:Yu_ x ]GtM,RZ4Q
Canvas.Top="80"Canvas.Left="150"Content="Toggle Full Screen"
k n1`-A2Ug2t2ju5R0v0
FontSize="20"Click="toggleButton_Click"/>
uJS \;Bf,e0<
Imagex:Name="image"Source="smile_6.png"
0\$K0s7Ku3OK&_)F0
Canvas.Top="100"Canvas.Left="40"></Image>ITPUB个人空间m SBJp&b T.T
</
Canvas>

引入命名空间

usingSystem.Windows.Interop;

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

private voidtoggleButton_Click(objectsender,RoutedEventArgse)ITPUB个人空间;[%]i&m(Y Ls3G
{
.pqv}NF3Z,yZ0ContentcontentObject =Application.Current.Host.Content;ITPUB个人空间6@n?x1t~
contentObject.IsFullScreen = !contentObject.IsFullScreen;ITPUB个人空间6WEm3r"L)enX+m
}

获取当前的Silverlight插件“Content”对象,并设置IsFullScreen属性。运行后单击按钮将会变为全屏模式,再次单击按钮(或者按Esc键)返回普通模式。
/][FZUl`0
b bRqT Wa s0

捕获相关事件

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

publicPage()ITPUB个人空间%se,Z"HGr
L
l%O
{ITPUB个人空间g} aerl'}:QJ e
InitializeComponent();
;S7?aew S-S0Ki0Application.Current.Host.Content.FullScreenChanged +=newEventHandler(Content_FullScreenChanged);
#n d.N nPJ `N0}

实现事件处理

private voidContent_FullScreenChanged(objectsender,EventArgse)ITPUB个人空间x@$?]B%W'E&o#o
{
CC _'{mP0ContentcontentObject =Application.Current.Host.Content;ITPUB个人空间/m%u\0[7at(|'_
if(contentObject.IsFullScreen)ITPUB个人空间x4h#kH"g]e)W
{
-A1i6Oy GUT0toggleButton.Background =newSolidColorBrush(Colors.Green);ITPUB个人空间@2z(\J5K9F0w0_yQE.A
toggleButton.Content ="Full Screen Mode";
a\2T,wOX0u [.g0}ITPUB个人空间 ~7X$L]-k H]
elseITPUB个人空间:k X.Q(f}.r-sk%[lU&L
{
;@i~SU'Ql0toggleButton.Background =newSolidColorBrush(Colors.Red);
0k;nU stb0toggleButton.Content ="Normal Mode";
P#M*^(j0r7qT,N9e[o0}ITPUB个人空间ut DsJ
}

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

ITPUB个人空间C6^ _LV7R{d
切换为普通模式:ITPUB个人空间Y$a;L}7G}

p6Wkkn#t0ITPUB个人空间-{4ANo$^Y

完整的代码如下:

public partial classPage:UserControl
o)F*x+h mn8T7k0
{ITPUB个人空间$bE _iS#UjP"x
publicPage()
8r TO1xMT#{0{
jJ?%vf.sIq I0InitializeComponent();
.kEI8?W s5^0Application.Current.Host.Content.FullScreenChanged +=newEventHandler(Content_FullScreenChanged);
7hO'E+X:w#Q%?"B bw0}
%MH)R\5e+BK0ITPUB个人空间X8? ~9FRH
private voidtoggleButton_Click(objectsender,RoutedEventArgse)ITPUB个人空间6q Dw c6j:N
{ITPUB个人空间}:V#Rw0r5Y diph/v2\
ContentcontentObject =Application.Current.Host.Content;ITPUB个人空间,Gu;]Rv(k S
contentObject.IsFullScreen = !contentObject.IsFullScreen;
}'^3R9J3N0}ITPUB个人空间z!J:xT#Y{ W
ITPUB个人空间'v0G"Zy0a7Ad?4N
private voidContent_FullScreenChanged(objectsender,EventArgse)
tK aX0O-O5{0{
G \r1w)MCd"ee2}0ContentcontentObject =Application.Current.Host.Content;ITPUB个人空间#Yo.f'k,U{RH
if(contentObject.IsFullScreen)
F&Rp([T2Fh y0{
N5l(I[,Ik`0toggleButton.Background =newSolidColorBrush(Colors.Green);ITPUB个人空间 mD-Xd+y*@
toggleButton.Content ="Full Screen Mode";
M!s@&]0e dfz0}
1G!R,?*||(WzG0elseITPUB个人空间&@7Y(n eo_2Xr
{
Jc#M rX0toggleButton.Background =newSolidColorBrush(Colors.Red);ITPUB个人空间(?L F%ZI,OV{
toggleButton.Content ="Normal Mode";ITPUB个人空间em8j"yQo)f-_
}ITPUB个人空间)? srJ}
}
/F$} EFt0}

结束语

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

作者:TerryLeeITPUB个人空间K\J!}ra E1TN3G
出处:http://terrylee.cnblogs.com

TAG:

 

评分:0

我来说两句

显示全部

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

日历

« 2008-07-24  
  12345
6789101112
13141516171819
20212223242526
2728293031  

数据统计

  • 访问量: 25805
  • 日志数: 761
  • 影音数: 7
  • 建立时间: 2008-01-04
  • 更新时间: 2008-07-24

RSS订阅

Open Toolbar