【问题标题】:ScrollViewer's ScrollToHorizontalOffset not working in Windows 8 appScrollViewer 的 ScrollToHorizo​​ntalOffset 在 Windows 8 应用程序中不起作用
【发布时间】:2012-10-29 21:20:35
【问题描述】:

我有一个 Windows 应用商店应用程序,其中包含一个 ScrollViewer 和一个 Image。当我双击ScrollViewer 时,我希望它将图像缩放到其宽度。这部分不是问题,但我也希望 Image 在放大后居中。

我尝试在ScrollViewer 上调用ScrollToHorizontalOffset 方法,但它似乎不适用于我给它的任何数字。有什么问题?

【问题讨论】:

    标签: c# xaml windows-8 microsoft-metro windows-runtime


    【解决方案1】:

    也许偏移量仅适用于您的图像完全填充 ScrollViewer 并因此无法滚动的非缩放视图。您可以尝试设置图像尺寸,使其大于 ScrollViewer,但设置原始 ZoomFactor,使其首先填充 ScrollViewer。然后缩放和滚动可能会起作用。

    【讨论】:

    • 我已经从缩放开始,我缩放使图像适合高度,点击后我想调整高度。在第一次加载图像并设置 ScrollViewer 的缩放之前没有任何东西可以滚动
    【解决方案2】:

    在滚动查看器中分配一个 SizeChangedEvent。

    <ScrollViewer SizeChanged="OnSizeChange"></ScrollViewer>
    

    像这样。然后最好将图像放在画布中。所以你的代码大概是这样的。

    <ScrollViewer SizeChanged="OnSizeChange" x:Name="scrl">
       <Canvas RenderTransformOrigin="0.5,0.5" x:Name="main">
           <Image source="" Canvas.Top="insert desire double value here", Canvas.Left="Same goes here"/>
       </Canvas>
    </ScrollViewer>
    

    然后在后面的代码中,您可以根据滚动查看器更改画布的高度和宽度

    Main.Width = scrl.ViewPortWidth; Main.Height = scrl.ViewPortHeight;

    您可以在添加double tap event 的同时试验canvass 的大小。更改canvas 的大小可以放大或缩小image,因为图像在canvass

    【讨论】:

      【解决方案3】:

      尝试使用“ChangeView”而不是“ZoomToFactor”

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多