【发布时间】:2019-05-23 07:51:18
【问题描述】:
状态
我有一个Page (Page_Child) 和一个ScrollViewer (ScrollViewer_Child) 在一个Frame (Frame_Parent) 这是我父母ScrollViewer (ScrollViewer_Parent) 的孩子。
<ScrollViewer Name="ScrollViewer_Parent">
<StackPanel>
<Frame Name="Frame_Parent">
<Frame.Content>
<Page Name="Page_Child">
<ScrollViewer Name="ScrollViewer_Child">
<!-- Page Content -->
</ScrollViewer>
</Page>
</Frame.Content>
</Frame>
<!-- ... -->
</StackPanel>
</ScrollViewer>
问题
我试图实现的是禁用Frame 中的ScrollViewer,因为父ScrollViewer 可以处理所有的抓取,这要归功于Frame 的不固定高度。 - 或者至少让父级在子级到达顶部或底部时继续滚动。
遗憾的是,我不能使用任何外部资源或库,也不能删除子 ScrollViewer,因为它在我的应用程序的其他地方可视化。
问题
有没有办法告诉框架内容禁用滚动或如何归档继续滚动通过框架?
【问题讨论】:
-
如果框架接收到鼠标滚轮事件,它将冒泡到滚动查看器。我之前在这里使用过stackoverflow.com/a/16110178/5084488 的解决方案,效果非常好
-
@Alfie 不能为我的应用程序使用任何 DLL 或外部资源(只能使用标准 Windows 库和 .NET 4.0):/
-
哦,好吧,您可以尝试做同样的事情,但只是在后面的代码中通过将 void
Frame_Parent_PreviewMouseWheel(object sender, MouseWheelEventArgs e) { e.Handled = true; ScrollViewer_Parent.RaiseEvent(e); }附加到 Frame_Parent 的 PreviewMouseWheel 事件?还是我误解了你? -
我误解了你,你的解决方案是完美的,虽然我需要这个互动的东西 - 你想写一个答案,以便我可以给你接受的答案徽章吗?
标签: c# wpf .net-4.0 frame scrollviewer