.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">
x+M3A*C1|DaI4OF0<
Buttonx:Name="toggleButton"Background="Red"Width="200"Height="80"ITPUB个人空间@[7O6hl
Canvas.Top="80"Canvas.Left="150"Content="Toggle Full Screen"
4I OxW!TW0
FontSize="20"Click="toggleButton_Click"/>
0Sv&P&k8d6RV t0<
Imagex:Name="image"Source="smile_6.png"
]*s v2X)B&Y:j"D0
Canvas.Top="100"Canvas.Left="40"></Image>
'cY7~\ }Ybl L+W_0</
Canvas>

引入命名空间

usingSystem.Windows.Interop;

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

private voidtoggleButton_Click(objectsender,RoutedEventArgse)ITPUB个人空间N!W(Jc~&`^L;A
{ITPUB个人空间)Km/J7W$D&M W
ContentcontentObject =Application.Current.Host.Content;ITPUB个人空间rh mTFx0H
contentObject.IsFullScreen = !contentObject.IsFullScreen;
C[ ]:ZZ'O0}

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

i*a$A/W-K}:[-F0

捕获相关事件

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

publicPage()ITPUB个人空间&Ik4d%Z@r^
{
tyO Kd"~ cQ-F0InitializeComponent();
bvH6v1F0Application.Current.Host.Content.FullScreenChanged +=newEventHandler(Content_FullScreenChanged);
;M S,r r E4I C!N0A0}

实现事件处理

private voidContent_FullScreenChanged(objectsender,EventArgse)ITPUB个人空间M
MCT@:S1K}/zL
{ITPUB个人空间~ly|,F'I%\ ]T
ContentcontentObject =Application.Current.Host.Content;ITPUB个人空间[f SJ[Ip
if(contentObject.IsFullScreen)
uD Gf2}B(`*x0{
b@;_ Z8Ap0toggleButton.Background =newSolidColorBrush(Colors.Green);ITPUB个人空间)u)Q#u;I{Ev
toggleButton.Content ="Full Screen Mode";
Eo*}&NQ0[cy'P0}ITPUB个人空间6Y.ni0p&\{W N
else
Iq ]I*G h-h,f0
{ITPUB个人空间8f7` W.T m
toggleButton.Background =newSolidColorBrush(Colors.Red);
;E[$mr|V7p0toggleButton.Content ="Normal Mode";
)?`%o%Ly0}ITPUB个人空间1Q q(\bh
}

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

ITPUB个人空间*Qx&x hP
切换为普通模式:ITPUB个人空间!_ x8@ Z5r/M%iG/~L
ITPUB个人空间z9j3Aw{ CL
ITPUB个人空间&z)R3T | ~

完整的代码如下:

public partial classPage:UserControlITPUB个人空间0m]qx;t
{
+rv)^'v0q#q0publicPage()
,j!eJ(E^2H2B0{
4r*|}~k6i!k3zf0InitializeComponent();ITPUB个人空间\%?5XsM$T+^ \+r_Z
Application.Current.Host.Content.FullScreenChanged +=newEventHandler(Content_FullScreenChanged);
+~t7t.XCxq0}ITPUB个人空间.u6e`)e6{!W It/tH

q(b/OwM x_9N:u0private voidtoggleButton_Click(objectsender,RoutedEventArgse)
4h J5N s@;a3L5^0{ITPUB个人空间n[)RAn5`
ContentcontentObject =Application.Current.Host.Content;
U)x?R T1G,]|0contentObject.IsFullScreen = !contentObject.IsFullScreen;
]8A"h.P.a0}
E)|$fx[)Z0
M w r#|r5jK1c0private voidContent_FullScreenChanged(objectsender,EventArgse)ITPUB个人空间;F\A/wDP
{
XR0P2Z,^Xj0ContentcontentObject =Application.Current.Host.Content;ITPUB个人空间b9l DEo;QQS/Z*sQ xe
if(contentObject.IsFullScreen)
o-d`MGv0{ITPUB个人空间aP \7@w*?B8fJq!yk
toggleButton.Background =newSolidColorBrush(Colors.Green);ITPUB个人空间4P]BaC L"H'yo1[
toggleButton.Content ="Full Screen Mode";ITPUB个人空间8v+@SUt2|
}ITPUB个人空间 S8w+oF4y.ghy
else
KV0JC]p(PG!S!W0
{
(Kf*Bi'sN_ y0toggleButton.Background =newSolidColorBrush(Colors.Red);ITPUB个人空间E a yA5?;C Js6T
toggleButton.Content ="Normal Mode";
d|-Hr6BpB0}
"Mu,WwY4pE7]a0}ITPUB个人空间k)Ew|AVH+q9q
}

结束语

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

作者:TerryLee
+q]8}1LN K7`L1W0出处:http://terrylee.cnblogs.com

TAG:

引用 删除 Guest   /   2011-10-08 12:14:32
5
引用 删除 Guest   /   2011-01-07 15:08:53
1
引用 删除 Guest   /   2009-06-03 14:25:57
5
 

评分:0

我来说两句

显示全部

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

日历

« 2012-02-10  
   1234
567891011
12131415161718
19202122232425
26272829   

数据统计

  • 访问量: 665817
  • 日志数: 3733
  • 影音数: 7
  • 文件数: 1
  • 建立时间: 2008-01-04
  • 更新时间: 2010-12-31

RSS订阅

Open Toolbar