Вы можете сделать это, используя matMenuTrigger
Директиву
<button mat-icon-button [matMenuTriggerFor]="menu"
#menuTrigger="matMenuTrigger" (mouseenter)="menuTrigger.openMenu()">
Чтобы скрыть меню, добавьте событие mouseleave
для меню.
Объедините все свои пункты меню в теге span
или div
. А затем прикрепите к нему (mouseleave)
событие
<mat-menu #menu="matMenu" [overlapTrigger]="false">
<span (mouseleave)="menuTrigger.closeMenu()">
<button mat-menu-item>
<mat-icon>home</mat-icon>
<span>Home</span>
........
<mat-icon>exit_to_app</mat-icon>
<span>Logout</span>
</button>
</span>
</mat-menu>
Разветвленная ДЕМО