Я не могу понять, почему наши сенсорные устройства не работают должным образом в новых окнах.
Я создал пример, который воспроизводит ошибку здесь:
MainWindow.xaml :
<Window
x:Class="touchTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="400" Width="400">
<StackPanel>
<TextBox Text="{Binding Integer}" FontSize="48" />
<TextBox Text="{Binding Integer}" FontSize="48" />
</StackPanel>
</Window>
MainWindow.xaml.cs :
public partial class MainWindow
{
public MainWindow()
{
InitializeComponent();
DataContext = new ViewModel();
}
}
ViewModel.cs :
public class ViewModel
{
private int _integer;
public int Integer
{
get => _integer;
set
{
_integer = value;
new DialogWindow().ShowDialog();
}
}
}
DialogWindow.xaml :
<Window
x:Class="touchTest.DialogWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="200" Width="200">
<Grid>
<Button Content="Close" Click="OnClick" />
</Grid>
</Window>
DialogWindow.xaml.cs :
public partial class DialogWindow
{
public DialogWindow()
{
InitializeComponent();
}
private void OnClick(object sender, RoutedEventArgs e)
{
Close();
}
}
Когда в одном из текстовых полей изменилось содержимое,и вы используете сенсорный, чтобы сфокусировать другое текстовое поле, появится DialogWindow
.Теперь проблема возникает, и мы должны нажать (коснуться) кнопку закрытия несколько раз (и т. Д. 9 раз на одном из наших устройств), прежде чем произойдет событие щелчка и диалоговое окно закроется.
TouchDown
событие работаетдолжным образом.Мы также экспериментируем с другими элементами, кроме Button
, например TextBox
.Поэтому переключение на событие TouchDown
не является решением.Все в новом окне кажется глючным.