WPF问题,当我打开第二个窗口,直到第二次点击里面的任何按钮时,它工作

时间:2015-07-03 16:34:45

标签: wpf events click touch focus

首先, 我之前一直在阅读一些静止的事情,看起来仍然没有答案。 我的机器操作系统是Win7,但测试机器有Win10 Pro内部预览。 IDE是VS2013用于开发,框架我使用的是4.0。 重要我正在使用触摸屏系统进行测试。

FYI

我在我的项目中有两个窗口,主窗口打开第二个窗口。在第二场比赛中我有几个按钮。但是,当我想点击任何按钮并查看操作时,会出现问题。但是在第二次点击之前它不会执行任何操作。在我看来,重点可能是问题。但我试图手动设置focus()方法,它仍然无法正常工作。奇怪的是,当我点击主窗口中的任何按钮时,如果我正在使用touchevents或mouseevents按钮执行操作而第二个没有执行操作则无关紧要。这是一个奇怪的问题!

谢谢你的时间,

这是我的代码 MainWindow.xaml

<Window x:Class="Testings.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="664.5" Width="955" WindowState="Maximized">
    <Grid x:Name="Principal">
        <Button Content="Abrir ventana" HorizontalAlignment="Left" Height="81" Margin="19,10,0,0" VerticalAlignment="Top" Width="167" Click="Button_Click"/>
        <Grid Width="300" Height="300">
            <ToggleButton HorizontalAlignment="Center" VerticalAlignment="Top" 
                  x:Name="PopButton" Content="Pop"/>
        </Grid>
    </Grid>
</Window>

现在我将向您展示cs MainWindow.cs

namespace Testings
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            ventana2 v = new ventana2();
            v.ShowDialog();
            v.Close();            
        }            

    }
}

第二个窗口 ventana2.xaml

<Window x:Class="Pruebas.ventana2"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="ventana2" Height="300" Width="300" WindowStyle="None" ResizeMode="NoResize" WindowStartupLocation="CenterScreen">
    <Grid x:Name="principal">
        <Grid.Background>
            <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                <GradientStop Color="Black" Offset="0"/>
                <GradientStop Color="#FF1133AA" Offset="1"/>
            </LinearGradientBrush>
        </Grid.Background>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="205*"/>
            <ColumnDefinition Width="87*"/>
        </Grid.ColumnDefinitions>
        <Label Content="Hello this is a second window" HorizontalAlignment="Left" Height="30" Margin="34,210,0,0" VerticalAlignment="Top" Grid.ColumnSpan="2" Foreground="White" FontSize="16">
            <Label.Effect>
                <DropShadowEffect Color="#FFB2F1FF" BlurRadius="4" ShadowDepth="0"/>
            </Label.Effect>
        </Label>
        <Button Grid.ColumnSpan="2" Content="Change the background color" HorizontalAlignment="Left" Height="131" Margin="45,47,0,0" VerticalAlignment="Top" Width="221" Click="Button_Click"/>
        <Button x:Name="btn_close" Content="Close" Width="70" Height="30" VerticalAlignment="Top" HorizontalAlignment="Right" Grid.Column="1" Click="btn_close_Click"/>
    </Grid>
</Window>

代码隐藏 ventana2.cs

namespace Testings
{
    public partial class ventana2 : Window
    {
        bool flag = false;
        public ventana2()
        {
            InitializeComponent();
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        { 
            if(flag == false)
            {
                principal.Background = new SolidColorBrush(Colors.Red);
                flag = true;
            }
            else if (flag == true)
            {
                principal.Background = new SolidColorBrush(Colors.Black);
                flag = false;
            }
        }
        private void btn_close_Click(object sender, RoutedEventArgs e)
        {
            this.Close();
        }
    }
}

终于,我记得你说我正在使用的系统是触摸屏!

0 个答案:

没有答案