【问题标题】:How to close a MatBlazor MatMenu programmatically如何以编程方式关闭 MatBlazor MatMenu
【发布时间】:2020-08-28 02:47:06
【问题描述】:

我想使用 MatBlazor Matmenu 组件。 可以通过'OpenAsync'方法打开,但是如何通过程序关闭呢?

从https://blazorfiddle.com/temp/ff5c7660-dd79-44a6-9135-1d19b83bcbf0 中可以看出,单击按钮时菜单会打开,但单击其他​​位置时不会关闭。所以我想从代码中关闭它。

编辑:当单击页面上的其他位置时,菜单确实会关闭(请参阅下面的答案),但我真的在寻找一种从代码中关闭它的方法。

【问题讨论】:

  • 我尝试使用您的 BlazorFiddle,但没有成功。请更新你的小提琴,我会看看。

标签: c# blazor matblazor


【解决方案1】:

没有复制。

但点击其他地方时不会关闭。

但确实如此。

它似乎在您的 Fiddle 中不起作用,因为按钮下方的页面只有 1 个像素高。没有什么可以点击的。

在@code 上方添加几对<p></p>,然后单击打开的菜单右侧。它会关闭。

BlazorFiddle here

【讨论】:

  • 我在 BlazorFiddle 中尝试了您的建议,但没有成功。除此之外,我真的很想从代码中关闭它。
  • 它对我来说很奏效......试试blazorfiddle.com/s/porqf6vv
  • 确实如此,但需要在您的示例中单击菜单旁边的右侧。在我的应用程序中,我使用顶部导航栏中的菜单,但是当我单击屏幕上的另一个组件时它不会打开。无论如何,我真的在寻找代码中的解决方案:我想制作一个自动打开(通过 Mouseover 事件)并在用户移动到 UI 的另一部分(通过 mouseout 事件)时再次关闭的菜单。
  • 我看了下源码,没有 CloseXXX 方法。我猜你运气不好。
  • 我很坚持,但希望有人知道一种方法。还是谢谢!
【解决方案2】:

MatMenus 有一个 CloseAsync() 方法,应该与打开它相反。

https://www.matblazor.com/Menu 不幸的是,它的 MatMenu 文档中没有包含方法列表。

【讨论】:

  • 我突然想到 CloseAsync() 对 OP 不可用。
猜你喜欢
  • 2011-07-15
  • 2015-11-26
  • 2020-07-08
  • 2013-07-04
  • 2010-11-17
  • 2016-03-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多