浮出控件 - WPF (mahApps)

Flyout - WPF (mahApps)

我试图在单击他或 window 的另一侧时关闭弹出按钮,我使用 ExternalCloseButton=Left 属性。这个可以吗?我也尝试删除 属性 AutoCloseEnabled,但无法得到结果。

当我将弹出窗口与 属性 EnabledAutoClose 一起使用时,当关闭时,焦点会丢失在原来的控件中。

你能帮忙解决这个问题吗?

<mahApps:MetroWindow.Flyouts>
    <mahApps:FlyoutsControl>
        <mahApps:Flyout Position="Bottom"
                        AutoCloseInterval="3000"
                        IsOpen="{Binding IsOpen}"
                        IsAutoCloseEnabled="True"
                        ExternalCloseButton="Left">
        </mahApps:Flyout>
    </mahApps:FlyoutsControl>
</mahApps:MetroWindow.Flyouts>

您可以使用 MainWindow 的 PreviewMouseLeftButtonUp 或任何包含弹出窗口的视图并将 isOpen 设置为 false。如果您只想在用户单击弹出窗口的外部时关闭它,您可以使用弹出窗口的 isMouseOver 属性 检查它。

如果您设置 IsPinned="False",则 Flyout 将在弹出窗口外单击鼠标左键时关闭。

<Controls:Flyout Height="75"
                 CloseButtonVisibility="Collapsed"
                 IsPinned="False"
                 Position="Bottom"
                 TitleVisibility="Collapsed">
    <TextBlock VerticalAlignment="Center" Text="This is an AppBar" />
</Controls:Flyout>

示例来自主要演示。希望这有帮助。