Как сделать, чтобы всплывающее окно не мешало нажимать что-либо еще
Я работаю над проектом UWP в C# и xaml.
Когда вы щелкаете вне выпадающего меню, всплывающее окно закрывается, но оно также предотвращает нажатие на что-либо еще.
Есть ли способ заставить всплывающее окно не глотать событие нажатия / нажатия указателя? Так что, например, нажатие кнопки при открытой всплывающей подсказке приведет к ее закрытию и выполнению нажатия кнопки.
Я попытался создать производный всплывающий класс с намерением переопределить функцию OnPointerPressed (как вы можете для кнопки), чтобы я мог установить флаг Handled на false, но, похоже, у него нет функции OnPointerPressed или чего-либо подобного,
1 ответ
Как сделать, чтобы всплывающее окно не мешало нажимать что-либо еще
Производное от Света отклоняет поведение. Вы можете изменить это поведение, назначив кнопку в качестве входного сквозного элемента для всплывающей подсказки.
Всплывающее окно закроется в результате действий по отключению света, описанных выше, а также передаст событие касания своему назначенному OverlayInputPassThroughElement. Рассмотрите возможность применения этого поведения для ускорения взаимодействия пользователей с функционально схожими элементами. Если у вашего приложения есть коллекция избранных, и каждый элемент в коллекции содержит прикрепленную всплывающую подсказку, разумно ожидать, что пользователи могут захотеть взаимодействовать с несколькими всплывающими подсказками в быстрой последовательности.
<Page.Resources>
<Flyout x:Name="TravelFlyout" x:Key="TravelFlyout"
OverlayInputPassThroughElement="{x:Bind FavoritesBar}">
<StackPanel>
<HyperlinkButton Content="Washington Trails Association"/>
<HyperlinkButton Content="Washington Cascades - Go Northwest! A Travel Guide"/>
</StackPanel>
</Flyout>
</Page.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<StackPanel x:Name="FavoritesBar" Orientation="Horizontal">
<HyperlinkButton x:Name="PageLinkBtn">Bing</HyperlinkButton>
<Button x:Name="Folder1" Content="Travel" Flyout="{StaticResource TravelFlyout}"/>
<Button x:Name="Folder2" Content="Entertainment" Click="Folder2_Click"/>
</StackPanel>
</Grid>