Всплывающее окно не закрывается на ощупь - PullRequest
0 голосов
/ 18 мая 2018

У меня есть всплывающее окно WPF, которое отлично работает с помощью мыши.

Всплывающее окно закрывается, когда пользователь щелкает вне всплывающего окна, как и ожидалось - пока все хорошо

При касанииэкран не закрывается, пока другой элемент управления не фокусируется (например, нажав кнопку или выделив текстовое поле)

Что мне нужно сделать, чтобы всплывающее окно закрывалось при касании, как при нажатии?

Я предполагаю, что это как-то связано с тем, чтобы не потерять фокус на прикосновении, но я не могу найти что-либо в Google, связанное с этим

Спасибо

1 Ответ

0 голосов
/ 21 мая 2018

Я только что запустил этот код:

<Window 
    x:Class="WpfApp1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d" Title="MainWindow" Height="450" Width="800">
    <Grid>
        <Button Click="ButtonBase_OnClick" Width="50" Height="40" HorizontalAlignment="Left">Show</Button>
        <Button Width="50" Height="40" HorizontalAlignment="Right">None</Button>
        <Popup x:Name="MyPopup" Width="200" Height="100" IsOpen="True" StaysOpen="False" >
            <Border Background="Red" Width="50" Height="50" ></Border>
        </Popup>
    </Grid>
</Window>


private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
    MyPopup.IsOpen = true;
}

, и он работает правильно, даже если я использую сенсорное устройство (в последней версии Windows).У вас могут быть некоторые другие проблемы в вашем коде, но для ответа на ваш вопрос:

Я просто спрашиваю, происходят ли изменения фокуса WPF по-разному между сенсорным и мышиным вводом

Нет, Это не.Пожалуйста, проверьте мой простой код или проверьте, нормально ли работает ваше приложение на другом сенсорном устройстве.Может быть, вы сами где-то обрабатываете события касания?

...