【问题标题】:lock a scrollviewer in place将滚动查看器锁定到位
【发布时间】:2011-08-10 11:31:53
【问题描述】:

我在 Windows Phone 7 应用程序的滚动查看器中有一个 inkpresenter。通常,当用户开始绘制时,滚动查看器会接管中间笔划,从而难以实际绘制内容。当需要使用 inkpresenter 时,我尝试禁用 ScrollBarVisibility,但随后滚动查看器会自动平移回顶部。那么如何在使用 inkpresenter 时防止 scrollviewer 滚动,同时仍保持滚动位置?

<ScrollViewer Name="ScrollBars" VerticalScrollBarVisibility="{Binding ScrollEnabled}" >
    <Canvas Height="2000">
        ...
        <InkPresenter Name="InkCanvas" Strokes="{Binding Strokes}" Canvas.Top="500" />
    </ Canvas >
</ScrollViewer >

编辑:

所以我尝试使用代码隐藏中的滚动功能来更新垂直偏移,其中我有一个链接到以下代码的按钮:

var offset = scrollViewer.VerticalOffset;
ScrollEnabled = ScrollBarVisibility.Disabled;
scrollViewer.ScrollToVerticalOffset(offset);

再次,它只是回到顶部。知道有什么问题吗?

【问题讨论】:

  • 您是否验证过offset变量的值不为零?
  • 我在调试器中检查了偏移量,它是一个非零数。禁用scrollvarvisibility时可以调用“ScrollToVerticalOffset”吗?
  • 我认为它可能是,但也许我错了。对不起,我的回答没有用。
  • 你可以在拨打Scrollviewer.ScrollToVerticalOffset之后再拨打Scrollviewer.UpdateLayout吗?
  • 是的,我也尝试过这条路线......似乎没有用。在 inkpresenter 中是否有要处理的事件,我可以处理触摸,这样它就不会冒泡到滚动查看器?

标签: windows-phone-7 scrollviewer microsoft.ink


【解决方案1】:

在禁用 VerticalScrollBarVisibility 后调用 Scrollviewer.ScrollToVerticalOffset 手动将 InkPresenter 显示在视图中。

【讨论】:

    猜你喜欢
    • 2019-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-17
    • 2018-08-06
    • 2011-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多