locked
Webview with viewbox RRS feed

  • Question

  • Hello,

    I am trying to use a webviewer within a viewbox ,so that when it's scaled from 1366x768 to 1920x1080, and keeps the same layout (look and feel). I am unable to get it to scale correctly at 1920x1080. The webvew doesn't seem to adjust. I think I am using the correct control (Viewbox) to help with up-scaling. Any advice, I would be grateful/helpful. Here is my XAML code:

    <common:LayoutAwarePage
        x:Name="pageRoot"
        x:Class="Save_It.Vacation"
        DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="using:Save_It"
        xmlns:common="using:Save_It.Common"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d">
    
        <Page.Resources>
    
            <!-- TODO: Delete this line if the key AppName is declared in App.xaml -->
            <x:String x:Key="AppName">My Application</x:String>
        </Page.Resources>
    
        <!--
            This grid acts as a root panel for the page that defines two rows:
            * Row 0 contains the back button and page title
            * Row 1 contains the rest of the page layout
        -->
        <Grid Style="{StaticResource LayoutRootStyle}" Background="White">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="605*"/>
                <ColumnDefinition Width="78*"/>
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition Height="140"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
            </Grid.RowDefinitions>
    
            <!-- Back button and page title -->
            <Grid Background="#FF0AAF22" Grid.ColumnSpan="2">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Button x:Name="backButton" Click="GoBack" IsEnabled="{Binding Frame.CanGoBack, ElementName=pageRoot}" Style="{StaticResource BackButtonStyle}"/>
                <TextBlock x:Name="pageTitle" Grid.Column="1" Text="{StaticResource AppName}" Style="{StaticResource PageHeaderTextStyle}"/>
            </Grid>
            <Viewbox Height="100" Margin="0,10,10,0" Grid.Row="1" VerticalAlignment="Top" Grid.ColumnSpan="2">
                <TextBox TextWrapping="Wrap" Text="Vacation Package" Width="Auto" HorizontalAlignment="Center"/>
            </Viewbox>
            <!--Web viewbox-->
            <Viewbox Height="518" Margin="0,0,0,-518" Grid.Row="2" VerticalAlignment="Top" x:Name="Webviewer" Width="Auto" Stretch="None" MinHeight="518" MaxHeight="1080">
                <WebView HorizontalAlignment="Left" VerticalAlignment="Top" Source="http://www.msn.com" MinHeight="518" MaxHeight="1080" Width="1210"/>
            </Viewbox>
            
            <!--<Viewbox Grid.Row="2">-->
            <!--</Viewbox>-->
    
            <VisualStateManager.VisualStateGroups>
    
                <!-- Visual states reflect the application's view state -->
                <VisualStateGroup x:Name="ApplicationViewStates">
                    <VisualState x:Name="FullScreenLandscape"/>
                    <VisualState x:Name="Filled"/>
    
                    <!-- The entire page respects the narrower 100-pixel margin convention for portrait -->
                    <VisualState x:Name="FullScreenPortrait">
                        <Storyboard>
                            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="backButton" Storyboard.TargetProperty="Style">
                                <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PortraitBackButtonStyle}"/>
                            </ObjectAnimationUsingKeyFrames>
                        </Storyboard>
                    </VisualState>
    
                    <!-- The back button and title have different styles when snapped -->
                    <VisualState x:Name="Snapped">
                        <Storyboard>
                            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="backButton" Storyboard.TargetProperty="Style">
                                <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource SnappedBackButtonStyle}"/>
                            </ObjectAnimationUsingKeyFrames>
                            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="pageTitle" Storyboard.TargetProperty="Style">
                                <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource SnappedPageHeaderTextStyle}"/>
                            </ObjectAnimationUsingKeyFrames>
                        </Storyboard>
                    </VisualState>
                </VisualStateGroup>
            </VisualStateManager.VisualStateGroups>
        </Grid>
    </common:LayoutAwarePage>
    
     

    Thanks again,

    John


    John Lisenby developer of My PC Playbook

    Monday, September 16, 2013 5:51 PM

Answers

  • Hi John,

    Did you try to set the Stretch from "None" to "Fill", "None" means the content preserves its original size and of course you will not see any scale change, and "Fill" will resize the content to fill the destination dimensions.

    Best Regards,

    --James


    <THE CONTENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED>
    Thanks
    MSDN Community Support

    Please remember to "Mark as Answer" the responses that resolved your issue. It is a common way to recognize those who have helped you, and makes it easier for other visitors to find the resolution later.

    Tuesday, September 17, 2013 5:42 AM
    Moderator