Как сделать, чтобы всплывающее окно не мешало нажатию чего-либо еще - PullRequest
0 голосов
/ 18 октября 2018

Я работаю над проектом UWP на c # и xaml.

Когда вы щелкаете по внешней стороне выпадающего меню, всплывающее окно закрывается, но оно также предотвращает щелчок по чему-либо еще.

Есть ли способ заставить всплывающее окно не глотать событие нажатия / нажатия указателя?Так что, например, нажатие кнопки при открытой всплывающей подсказке закроет всплывающую подсказку и выполнит нажатие кнопки.

Я попытался создать производный всплывающий класс с намерением переопределить функцию OnPointerPressed (как выможет для кнопки), поэтому я могу установить флаг Handled в значение false, но, похоже, он не имеет функции OnPointerPressed или чего-либо подобного.

1 Ответ

0 голосов
/ 19 октября 2018

Как сделать всплывающее окно, не предотвращающее нажатие чего-либо еще

Получено из Поведение при отклонении света .Вы можете изменить это поведение, назначив кнопку в качестве входного проходного элемента для всплывающей подсказки.

Всплывающая подсказка закроется в результате действий по прекращению подачи света, описанных выше, и также пройдет событие касания.в его назначенный 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...