Welcome to MSDN Blogs Sign in | Join | Help

US ISV Developer Community

Posts helpful to US-based ISVs implementing products on the Microsoft platform

News

Full screen Silverlight apps

At the end of last week, a question came up about whether Silverlight was capable of delivering apps that go beyond the browser frame.  I thought I had recalled a sample that did this up on the Silverlight gallery but couldn't locate it, so I did a little more digging.  I'm pleased to inform you that if you have a requirement for this, it's pretty simple and easy to do.

The trick lies in setting the Application.Current.Host.Content object's IsFullScreen property to true - the only thing you'll need to take note of is that the transition to full screen must be done in response to user input (for security reasons.)  The following XAML + code illustrate (please don't mind the color scheme of the gradient fill.)

XAML:

<UserControl x:Class="AgFullScreen.Page"

    xmlns="http://schemas.microsoft.com/client/2007"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    >

    <Canvas x:Name="MyCanvas">

        <Canvas.Background>

            <LinearGradientBrush>

                <GradientStop Offset="0" Color="Orange"/>

                <GradientStop Offset="0.5" Color="Bisque"/>

                <GradientStop Offset="1" Color="LightGreen"/>

            </LinearGradientBrush>

        </Canvas.Background>

        <Button x:Name="MyButton" Canvas.Left="20" Canvas.Top="20" Content="Full Screen?" Height="50" Width="100"/>

        <Button x:Name="MyOtherButton" Canvas.Left="20" Canvas.Top="120" Content="Not Full Screen?" Height="50" Width="100"/>

    </Canvas>

</UserControl>

Code:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Documents;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Animation;

using System.Windows.Shapes;

 

namespace AgFullScreen

{

    public partial class Page : UserControl

    {

        public Page()

        {

            InitializeComponent();

            this.MyButton.Click += new RoutedEventHandler(MyButton_Click);

            this.MyOtherButton.Click += new RoutedEventHandler(MyOtherButton_Click);

        }

 

        void MyButton_Click(object sender, RoutedEventArgs e)

        {

            //get the plugin content object

            System.Windows.Interop.Content content = Application.Current.Host.Content;

            content.IsFullScreen = true;

        }

 

        void MyOtherButton_Click(object sender, RoutedEventArgs e)

        {

            //get the plugin content object

            System.Windows.Interop.Content content = Application.Current.Host.Content;

            content.IsFullScreen = false;

        }

    }

}

Have fun with this, but please don't abuse full screen apps.  :)

Posted: Tuesday, May 27, 2008 7:32 PM by jpelak
Filed under:

Comments

jackbond said:

As full screen Silverlight apps do not have keyboard support, they are just about useless. So you don't need to worry about people abusing them.

# May 27, 2008 8:35 PM

Visual Studio Hacks said:

My latest in a series of the weekly, or more often, summary of interesting links I come across related to Visual Studio. Scott Guthrie announced the availability of ASP.NET MVC Preview 3 . The release was also mentioned by Phil Haack and Scott Hanselman

# May 28, 2008 11:47 AM
Leave a Comment

(required) 

(required) 

(optional)

(required) 

  
Enter Code Here: Required

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Page view tracker