【问题标题】:Prevent Splitview Pane from closing and prevent close animation防止Splitview Pane关闭并防止关闭动画
【发布时间】:2016-11-30 21:51:42
【问题描述】:

如果满足特定条件,有没有办法阻止 UWP Splitview 关闭?我实现了以下 PropertyChange 回调:

MySplitView.RegisterPropertyChangedCallback(SplitView.IsPaneOpenProperty, MySplitViewPaneOpenPropertyChanged);

看起来像这样:

private void MySplitViewPaneOpenPropertyChanged(DependencyObject sender, DependencyProperty dp)
    {
        if (preventClose == true)
        {
            TrashSplitView.IsPaneOpen = true;
        }
    }

此代码使拆分视图窗格保持打开状态,但会短暂启动动画。有没有办法阻止动画开始?

【问题讨论】:

  • 我看到的唯一方法是使用 DisplayMode="Inline" 而不是“Overlay”。但是如果你需要内联模式,这是没用的。
  • 我真的想通了!检查我发布的答案。感谢您的评论

标签: c# xaml uwp


【解决方案1】:

在深入研究了 Splitview 必须提供的方法和事件之后,我找到了一个简单的解决方案。希望这个答案能帮助其他人尝试做同样的事情。

Splitview 类上有一个名为“PaneClosing”的事件

<Splitview PaneClosing="SplitView_PaneClosing"/>

在事件处理程序中,你可以像这样完全取消这个关闭动画:

private void SplitView_PaneClosing(SplitView sender, SplitViewPaneClosingEventArgs args)
{
    if (preventClose == true)
    {
        args.Cancel = true;
    }
}

【讨论】:

  • 哈哈,我刚刚找到了这个解决方案,当我回到这里时,你已经自己解决了。
  • 经过大量实验后,我确定通过 SplitViewPaneClosingEventArgs 取消仅在 DisplayMode 为 Overlay 或 CompactOverlay 时有效,并且窗格通过用户与灯光关闭层交互而关闭,但不是在以编程方式关闭时(即使用 IsPaneOpen = false)
  • 对于我来说,围绕 spiltview 窗格的整个 UI 不对任何用户输入负责。
猜你喜欢
  • 2012-12-31
  • 2015-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多