我的布局如下所述:
<ScrollViewer>
<StackPanel Orientation="Horizontal">
<!-- ... -->
<ScrollViewer>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel ScrollViewer.VerticalScrollBarVisibility="Visible" Orientation="Vertical" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ScrollViewer>
<!-- ... -->
</StackPanel>
</ScrollViewer>
我希望达到天气应用中的效果。
在我的应用程序中,当你使用鼠标滚轮滚动时,当指针越过ItemsControl时,它立即开始在天气应用程序中滚动verticaly wheras,有流畅的水平滚动效果,并且当有一段时间悬停该垂直收集时,滚动verticaly开始。 / p>
这种行为是默认实现的吗?
Szymon
答案 0 :(得分:2)
通常,指南是在水平滚动转发器中引入垂直滚动是一个坏主意。我认为你不应该将Weather(或任何标准的Windows 8应用程序)视为模拟模型。他们中的大多数人在一些最糟糕的方面违反了指导方针。
天气应用程序根据当前鼠标位置,网格运动和焦点控制来完成您的要求。这是一种复杂的说法,一些开发人员设想了一个解决方案来帮助他们的UI尽可能地让用户感到困惑。
请,不要。
答案 1 :(得分:0)
我认为他们为实现这一目标所做的是:
如果鼠标悬停在垂直列表上一段时间,它们会停用水平滚动并激活垂直滚动。一旦鼠标移到列表之外,它们就会切换回来(停用垂直滚动并激活水平滚动)。
我没有对此进行测试,看看是否有效,但我认为应该这样做。