Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 按钮在第一次单击时不响应_Wpf_Win Universal App_Uwp_Windows 10 Universal_Windows 10 Mobile - Fatal编程技术网

Wpf 按钮在第一次单击时不响应

Wpf 按钮在第一次单击时不响应,wpf,win-universal-app,uwp,windows-10-universal,windows-10-mobile,Wpf,Win Universal App,Uwp,Windows 10 Universal,Windows 10 Mobile,我有一个页面供用户输入个人电话号码。当文本框获得焦点时,会显示虚拟键盘,但当用户输入完电话号码并单击“下一步”绿色按钮(对屏幕截图上的俄语表示抱歉)时,第一次单击“穿过”按钮并关闭键盘,只有下一次单击才激活单击事件。 有没有办法解决这个问题? 也许页面焦点状态有一些问题,但我真的不知道 更新: 这是我页面的XAML <Grid x:Name="LayoutRoot" Style="{StaticResource GeneralAppBackground}"> <Gri

我有一个页面供用户输入个人电话号码。当文本框获得焦点时,会显示虚拟键盘,但当用户输入完电话号码并单击“下一步”绿色按钮(对屏幕截图上的俄语表示抱歉)时,第一次单击“穿过”按钮并关闭键盘,只有下一次单击才激活单击事件。 有没有办法解决这个问题? 也许页面焦点状态有一些问题,但我真的不知道

更新: 这是我页面的XAML

<Grid x:Name="LayoutRoot" Style="{StaticResource GeneralAppBackground}">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="*" />
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>

    // Control to show the loading state
    <controls:LoadingPageState x:Name="LoadingGrid" Visibility="Collapsed" Grid.RowSpan="3" Canvas.ZIndex="1" TitleOfOperation="Проверка существования кошелька..." />
    <Grid Style="{StaticResource GeneralAppHeaderStyle}">
        <TextBlock Text="Введите номер телефона" FontWeight="Normal" HorizontalAlignment="Center" VerticalAlignment="Center" Style="{StaticResource PageHeaderTextBlockStyle}" />
    </Grid>
    <Grid Grid.Row="1">
        <StackPanel Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="20,0,20,0">
            <TextBlock x:Uid="Greeting" Foreground="#979797" TextAlignment="Center" Margin="0,0,0,10" />
            <Grid Margin="0,0,0,5">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="*" />
                </Grid.ColumnDefinitions>
                <TextBox Grid.Column="0" PlaceholderText="+7" FontSize="18" BorderThickness="0,0,0,2" BorderBrush="#979797" Background="Transparent" IsReadOnly="True" Margin="0,0,10,0" Template="{StaticResource DefaultTextBoxStyle}"/>
                <TextBox x:Name="UserPhoneNumberInput" Grid.Column="1" IsTextPredictionEnabled="False" IsSpellCheckEnabled="False" PlaceholderText="777 123 12 12" FontSize="18" BorderThickness="0,0,0,2" BorderBrush="#979797" MaxLength="10" Background="Transparent" InputScope="TelephoneNumber" Template="{StaticResource DefaultTextBoxStyle}" TextChanged="UserPhoneNumberInput_TextChanged" />
            </Grid>
            <TextBlock x:Name="HintText" TextWrapping="WrapWholeWords" Foreground="#979797" TextAlignment="Center">
                Ваш телефон будет использоваться в качестве номера кошелька
            </TextBlock>
        </StackPanel>
    </Grid>
    <Button x:Name="NextStepButton" Grid.Row="2" IsEnabled="False" Content="Далее" VerticalAlignment="Bottom" Style="{StaticResource WideGreenButtonStyle}" Click="NextStepButton_Click" />
</Grid>
这里,如果我的“加载网格”的XAML很重要的话


这是出于设计

单击下一步按钮时,UserPhoneNumberInput文本框失去焦点,然后键盘自动消失。最有可能的情况是,根据您的自定义布局模板,“下一步”按钮也会稍微向下移动。当您释放鼠标按钮时(假设您使用的是模拟器),NextStepButton此时不在。这就是为什么它不会触发点击事件。如您所知,按钮的默认单击模式是ClickMode.Release。我最近也有同样的问题

您可以尝试向按钮属性中添加IsTabStop=“False”,以解决此行为。

这是出于设计

单击下一步按钮时,UserPhoneNumberInput文本框失去焦点,然后键盘自动消失。最有可能的情况是,根据您的自定义布局模板,“下一步”按钮也会稍微向下移动。当您释放鼠标按钮时(假设您使用的是模拟器),NextStepButton此时不在。这就是为什么它不会触发点击事件。如您所知,按钮的默认单击模式是ClickMode.Release。我最近也有同样的问题


您可以尝试将IsTabStop=“False”添加到按钮属性中,以解决此问题。

在您发布代码之前似乎不清楚。@Rakitić我已经用代码更新了我的问题。@Henk Holterman,我想情况并非如此,因为有时按钮单击可以正常工作。这很可能是我的代码中的一个问题,但我不知道它可能在哪里!在您发布代码之前似乎不清楚。@Rakitić我已经用我的代码更新了我的问题。@Henk Holterman,我认为情况并非如此,因为有时按钮点击可以正常工作。这很可能是我的代码中的一个问题,但我不知道它可能在哪里!非常感谢您的明确解释!你的回答对我帮助很大。非常感谢你的清楚解释!你的回答对我帮助很大。
private void NextStepButton_Click(object sender, RoutedEventArgs e)
    {
        if (!UserPhoneNumberInput.Text.All(Char.IsDigit) || UserPhoneNumberInput.Text.Length == 0)
        {
            NotifyUser.ShowWrongPhoneNumberFormatMessage();
            return;
        }

        phoneNumber = Helpers.FormatNumber(UserPhoneNumberInput.Text);

        // Activate the ContentLoading ring
        LoadingGrid.Visibility = Visibility.Visible;
        LoadingGrid.IsProgressRingActive = true;

        CheckNumber(phoneNumber);
    }
<Grid x:Name="LayoutRoot" Background="#CC000000">
    <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
        <ProgressRing x:Name="ProgressRing" Width="50" Height="50" Foreground="White" IsActive="{x:Bind IsProgressRingActive, Mode=TwoWay}" />
        <TextBlock x:Name="OperationTitle" Text="{x:Bind TitleOfOperation, Mode=TwoWay}" TextAlignment="Center" FontSize="18" Foreground="White" Margin="0,20,0,0" />
    </StackPanel>
</Grid>