2016-10-31 5 views
-3

Я пытаюсь закрыть всплывающее окно при щелчке по его или на другой стороне окна, я использую свойство ExternalCloseButton=Left. Это нормально? Я также попытался удалить свойство AutoCloseEnabled, но не смог получить результаты.Flyout - WPF (mahApps)

Когда я использую вылет с недвижимостью 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> 
+2

google translate still sucks :( –

ответ

1

Если вы установили 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> 

Образец из основной демонстрации. Надеюсь это поможет.

+0

Отлично! Thx !!!! – avechuche

0

Вы можете использовать PreviewMouseLeftButtonUp в MainWindow или любой другой вид содержит выпадающее и установить IsOpen ложь. Если вы хотите закрыть его только тогда, когда пользователь нажимает на внешнюю сторону всплывающего окна, вы можете проверить его с помощью свойства isMouseOver всплывающего окна.

Смежные вопросы