Cocoa Dev
Cocoa Dev

Reputation: 9551

how to start a full screen application?

I found some code and I was wondering if someone can explain how it works.

<Window x:Class="FullScreenDemo.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
        xmlns:Einstein="clr-namespace:FullScreenDemo"
        Title="FullScreenBehavior Demo" Width="640" Height="480"
        Einstein:FullScreenBehavior.IsFullScreen="{Binding Path=IsChecked, ElementName=FullScreenButton, Mode=TwoWay}">

    <i:Interaction.Behaviors>
        <Einstein:FullScreenBehavior
            FullScreenOnDoubleClick="{Binding IsChecked, ElementName=FullOnDoubleClick}"
            FullScreenOnMaximize="{Binding IsChecked, ElementName=FullOnMaximize}"
            RestoreOnEscape="{Binding IsChecked, ElementName=ExitOnEscape}"/>
    </i:Interaction.Behaviors>

    <Viewbox Stretch="Uniform">

        <Grid Width="640" Height="480">

            <StackPanel Margin="20">

                <TextBlock Text="Full Screen Demo" FontSize="32" />

                <TextBlock TextWrapping="Wrap">

                    <LineBreak />
                    <LineBreak />

                    <Run>
                        The FullScreenBehavior makes it easy to create a WPF window that can &quot;go full screen&quot;.
                        By default, the full screen setting can only be changed programmatically. Try pressing the 
                        ToggleButton in the upper right hand corner which is Two-Way bound to the IsFullScreen
                        property of the Window.
                    </Run>

                    <LineBreak />
                    <LineBreak />

                    <Run>
                        This demo uses a ViewBox to scale the content with the Window but that is not required.
                        You can use whatever layout strategy you want.
                    </Run>

                    <LineBreak />
                    <LineBreak />

                    <Run>
                        There are properties that can be set that can be used to enable automatic full screen behavior
                        in response to common user actions. Play around with the options below which control how the
                        Window reacts to user gestures.
                    </Run>

                    <LineBreak />

                </TextBlock>

                <CheckBox x:Name="FullOnMaximize" Margin="5" Content="Maximizing enters full screen"/>
                <CheckBox x:Name="FullOnDoubleClick" Margin="5" Content="Double clicking enters/exits full screen" />
                <CheckBox x:Name="ExitOnEscape" Margin="5" Content="Pressing escape exits full screen"/>

            </StackPanel>

            <ToggleButton x:Name="FullScreenButton" Content="Full Screen"
                          Margin="8" VerticalAlignment="Top" HorizontalAlignment="Right"
                          Height="50" Width="120" Checked="FullScreenButton_Checked"/>

        </Grid>

    </Viewbox>

</Window>

I updated the code to the FULL XAML code. I originally posted the relevent parts but I am posting the entire code upon request.

I see that there is no "code" that makes the window FullScreen. My question is how is it making the window "Full Screen"?

Upvotes: 2

Views: 229

Answers (1)

TomTom
TomTom

Reputation: 62157

I found some code and I was wondering if someone can explain how it works

Noone can because you miss the behavior für Einstein::FullScreenBehavior

Behaviors are custom XAML Elements, and you miss the code - you only have the Integration into the page.

And it is not about starting, it does some button up and some Event hookup, nothing says the window starts full Screen UNLESS FullscrrenButton_Checked is checked.

But to see HOW it works, you Need to provide us the code for the behavior.

Upvotes: 2

Related Questions