我在滚动查看器中遇到问题。设想:
我有一个堆栈面板,其中有一个内容,从该内容的鼠标移动显示一个弹出窗口以重新排列这些内容。
问题:当我试图处理该内容弹出显示的鼠标移动以及滚动时。
预期行为:处理鼠标移动时不应发生滚动。
我试过"HorizontalScrollBarVisibility = ScrollBarVisibility.Disabled
“它工作正常,但它将滚动查看器设置为其初始位置,意味着水平偏移设置为零(“0”)
提前致谢。
我在滚动查看器中遇到问题。设想:
我有一个堆栈面板,其中有一个内容,从该内容的鼠标移动显示一个弹出窗口以重新排列这些内容。
问题:当我试图处理该内容弹出显示的鼠标移动以及滚动时。
预期行为:处理鼠标移动时不应发生滚动。
我试过"HorizontalScrollBarVisibility = ScrollBarVisibility.Disabled
“它工作正常,但它将滚动查看器设置为其初始位置,意味着水平偏移设置为零(“0”)
提前致谢。
根据我们的讨论,我认为最好的方法是存储一个类级别的布尔值,它将确定是否启用滚动。您必须根据需要进行设置(可能与您之前修改可见性的位置相同)。
下一步是在您的滚动查看器上设置一些事件和属性,以便您可以控制它是否滚动。您实际上只需要修改包含滚动查看器的页面的构造函数,并为ManipulationStarted
事件创建一个处理程序。以下假设您的控件名为 Scroll,并且当控件不应滚动时,变量 locked 设置为 true:
public MainWindow()
{
InitializeComponent();
Scroller.ManipulationStarted += new EventHandler<ManipulationStartedEventArgs>(scroller_ManipulationStarted);
Scroller.ManipulationMode = ManipulationMode.Control; // Required
}
void scroller_ManipulationStarted(object sender, ManipulationStartedEventArgs e)
{
if (locked)
{
e.Handled = true;
e.Complete();
}
}