【发布时间】: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