【问题标题】:Rotating webbrowser from current orientation is stretching(zooming) the webbrowser contents Windows phone从当前方向旋转网络浏览器正在拉伸(缩放)网络浏览器内容 Windows phone
【发布时间】:2015-02-07 07:23:55
【问题描述】:

我有一个处于纵向模式的网络浏览器。我正在使用

加载网络浏览器
this.webBrowserControl.Source = new Uri("http://google.com");

加载内容后,视图如下所示

提供了旋转按钮,所以如果用户处于纵向模式并且用户按下旋转按钮,那么我将使用变换旋转 webview 并设置它的高度和宽度,以便它可以占据整个屏幕

pageWidth = 480;
pageHeight = 800;
RotateTransform transform = new RotateTransform();
transform.Angle = 90;
this.webbrowser.RenderTransform = transform;
webbrowser.Width = pageHeight;
webbrowser.Height = pageWidth;

网络浏览器旋转了,但内容看起来像缩放或拉伸,它像这样 looks

知道如何不缩放内容吗??

【问题讨论】:

    标签: c# windows-phone-8 windows-phone browser windows-phone-8.1


    【解决方案1】:

    编辑:

    更改缩放百分比:

    // figure out the ratio you want to reduce by
    string zoom_js = "document.body.style.zoom=\"50%\";";
    
    try
    {
        this.myBrowser.IsScriptEnabled = true;
        this.myBrowser.InvokeScript("eval", zoom_js);
    }
    catch(Exception ex)
    {
    }
    

    它没有缩放任何东西。只是您旋转它然后拉伸(调整大小)容器。

    鉴于您的分辨率,如果您不想进行任何拉伸,则必须保持纵横比。

    <phone:WebBrowser x:Name="myBrowser" RenderTransformOrigin="0.5,0.5" Height="480" Width="480" Margin="0" Padding="0">
            <phone:WebBrowser.RenderTransform>
                <CompositeTransform Rotation="90"/>
            </phone:WebBrowser.RenderTransform>
        </phone:WebBrowser>
    </Border>
    

    现在它不会被拉伸,但它也不会覆盖整个屏幕。现在,想象一下像你一样拉伸容器。结果将是您发布的图片。

    【讨论】:

    • 但要求是,覆盖整个屏幕。有什么建议吗??
    • @nucleons 您无法在不遇到这些伪影的情况下将图像调整得更大。您可以通过使用另一种插值方法来减少伪影,但作为 SO 答案可能会太长。最好的办法是欺骗WebBrowser 进行渲染,如果它处于横向模式,然后你可以旋转它,它将成为你想要的比例。
    • 那么我是否需要将PhoneApplicationPage 旋转到横向?因为我将网络浏览器保留在弹出窗口中。或者如何在横向中渲染 WebBrowser??
    • @nucleons 添加了有关如何动态更改缩放的更多信息,但我仍然认为这是一个拉伸问题。也许您可以使用缩小来伪造您希望达到的效果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-07
    • 2023-03-08
    相关资源
    最近更新 更多