0

Ich habe die Seite für den Benutzer die persönliche Telefonnummer eingeben. Wenn die TextBox den Fokus hat, wird die virtuelle Tastatur angezeigt, aber wenn ein Benutzer mit der Eingabe der Telefonnummer fertig ist und auf die grüne Schaltfläche "Weiter" klickt, wird der erste Button "durchgegangen" und die Tastatur geschlossen und nur der nächste Klick aktiviert das Klick-Ereignis. Irgendwelche Ideen, wie das zu beheben? Vielleicht gibt es einige Probleme mit dem Seitenfokus, aber ich weiß es ehrlich gesagt nicht.Button reagiert nicht auf den ersten Klick

enter image description here

UPDATE: Dies ist XAML meiner Seite

<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> 

Und hier ist mein C# -Code für Schaltfläche klicken Ereignis

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); 
    } 

Und hier, wenn es wichtig der XAML meines "LoadingGrid"

<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> 
+0

scheint unklar, bis Sie Ihren Code veröffentlichen. –

+0

@ Rakitić Ich habe meine Frage mit meinem Code aktualisiert. –

+0

@Henk Holterman, ich denke, dass das nicht der Fall ist, weil manchmal der Knopf Klick richtig funktioniert. Wahrscheinlich ist dies ein Problem in meinem Code, aber ich weiß nicht, wo es sein könnte! –

Antwort

3

Das ist von Entwurf.

Wenn Sie Ihre NextStepButton Schaltfläche klicken, wird der UserPhoneNumberInput TextBox verliert seinen Fokus und dann automatisch die Tastatur verschwindet. Höchstwahrscheinlich, aber abhängig von Ihren benutzerdefinierten Layoutvorlagen, bewegt sich der NextStepButton auch leicht nach unten. Und wenn Sie die Maustaste loslassen (vorausgesetzt, Sie verwenden einen Emulator), ist der NextStepButton nicht in diesem Moment vorhanden. Deshalb löst es nicht das Click Ereignis aus. Wie Sie wissen, ist der Standard ClickMode für Schaltflächen ClickMode.Release. Ich hatte kürzlich genau das gleiche Problem.

Sie können versuchen, IsTabStop = "False" zu Ihren Schaltflächeneigenschaften hinzuzufügen, um dieses Verhalten zu umgehen.

+0

vielen dank für ihre klare erklärung! Ihre Antwort hat mir sehr geholfen. –

Verwandte Themen