2017-04-06 97 views
0

我在我的項目中設計了一個蒙版TextBox,用於輸入時間格式數字(使用冒號如00:00:00),並且它與物理鍵盤配合良好,但不幸與觸摸屏的數字鍵盤!UWP:使用觸摸屏數字鍵盤無法輸入數字以掩碼TextBox

有沒有人有任何建議如何解決這個問題?

這是XAML代碼:

<Page 
x:Class="test.MainPage" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:local="using:test" 
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
xmlns:mc="http://schemas.openxmlformats.org/markup- compatibility/2006" 
xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls" 
mc:Ignorable="d" Width="800" Height="480"> 

    <Grid Background="{ThemeResource  ApplicationPageBackgroundThemeBrush}"> 
    <TextBox 
     controls:TextBoxMask.CustomMask="5:[0-5]" 
     controls:TextBoxMask.Mask="5:59:59" 
     Name="Textbox" 
     VerticalAlignment="Center" 
     HorizontalAlignment="Center" 
     Width="200" Margin="442,166,158,282"/> 
    <Button x:Name="button11" Content="1" HorizontalAlignment="Left" Margin="130,122,0,0" VerticalAlignment="Top" Width="45" Height="45" Foreground="#FFA8A8A8" FontSize="24" FontWeight="Bold" BorderThickness="1" ClickMode="Press" BorderBrush="#FFC9C9C9" Tapped="button11_Tapped"> 
     <Button.Background> 
      <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
       <GradientStop Color="#FFE6E6E6" Offset="0.47"/> 
       <GradientStop Color="White" Offset="1"/> 
      </LinearGradientBrush> 
     </Button.Background> 
    </Button> 
    <Button x:Name="button12" Content="2" HorizontalAlignment="Left" Margin="186,122,0,0" VerticalAlignment="Top" Width="45" Height="45" Foreground="#FFA8A8A8" FontSize="24" FontWeight="Bold" BorderThickness="1" ClickMode="Press" BorderBrush="#FFC9C9C9"> 
     <Button.Background> 
      <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
       <GradientStop Color="#FFE6E6E6" Offset="0.47"/> 
       <GradientStop Color="White" Offset="1"/> 
      </LinearGradientBrush> 
     </Button.Background> 
    </Button> 
    <Button x:Name="button13" Content="3" HorizontalAlignment="Left" Margin="242,122,0,0" VerticalAlignment="Top" Width="45" Height="45" Foreground="#FFA8A8A8" FontSize="24" FontWeight="Bold" BorderThickness="1" ClickMode="Press" BorderBrush="#FFC9C9C9"> 
     <Button.Background> 
      <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
       <GradientStop Color="#FFE6E6E6" Offset="0.47"/> 
       <GradientStop Color="White" Offset="1"/> 
      </LinearGradientBrush> 
     </Button.Background> 
    </Button> 
    <Button x:Name="button14" Content="4" HorizontalAlignment="Left" Margin="130,178,0,0" VerticalAlignment="Top" Width="45" Height="45" Foreground="#FFA8A8A8" FontSize="24" FontWeight="Bold" BorderThickness="1" ClickMode="Press" BorderBrush="#FFC9C9C9"> 
     <Button.Background> 
      <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
       <GradientStop Color="#FFE6E6E6" Offset="0.47"/> 
       <GradientStop Color="White" Offset="1"/> 
      </LinearGradientBrush> 
     </Button.Background> 
    </Button> 
    <Button x:Name="button15" Content="5" HorizontalAlignment="Left" Margin="186,178,0,0" VerticalAlignment="Top" Width="45" Height="45" Foreground="#FFA8A8A8" FontSize="24" FontWeight="Bold" BorderThickness="1" ClickMode="Press" BorderBrush="#FFC9C9C9" Tapped="button11_Tapped"> 
     <Button.Background> 
      <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
       <GradientStop Color="#FFE6E6E6" Offset="0.47"/> 
       <GradientStop Color="White" Offset="1"/> 
      </LinearGradientBrush> 
     </Button.Background> 
    </Button> 
    <Button x:Name="button16" Content="6" HorizontalAlignment="Left" Margin="242,178,0,0" VerticalAlignment="Top" Width="45" Height="45" Foreground="#FFA8A8A8" FontSize="24" FontWeight="Bold" BorderThickness="1" ClickMode="Press" BorderBrush="#FFC9C9C9"> 
     <Button.Background> 
      <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
       <GradientStop Color="#FFE6E6E6" Offset="0.47"/> 
       <GradientStop Color="White" Offset="1"/> 
      </LinearGradientBrush> 
     </Button.Background> 
    </Button> 
    <Button x:Name="button17" Content="7" HorizontalAlignment="Left" Margin="130,234,0,0" VerticalAlignment="Top" Width="45" Height="45" Foreground="#FFA8A8A8" FontSize="24" FontWeight="Bold" BorderThickness="1" ClickMode="Press" BorderBrush="#FFC9C9C9"> 
     <Button.Background> 
      <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
       <GradientStop Color="#FFE6E6E6" Offset="0.47"/> 
       <GradientStop Color="White" Offset="1"/> 
      </LinearGradientBrush> 
     </Button.Background> 
    </Button> 
    <Button x:Name="button18" Content="8" HorizontalAlignment="Left" Margin="186,234,0,0" VerticalAlignment="Top" Width="45" Height="45" Foreground="#FFA8A8A8" FontSize="24" FontWeight="Bold" BorderThickness="1" ClickMode="Press" BorderBrush="#FFC9C9C9"> 
     <Button.Background> 
      <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
       <GradientStop Color="#FFE6E6E6" Offset="0.47"/> 
       <GradientStop Color="White" Offset="1"/> 
      </LinearGradientBrush> 
     </Button.Background> 
    </Button> 
    <Button x:Name="button19" Content="9" HorizontalAlignment="Left" Margin="242,234,0,0" VerticalAlignment="Top" Width="45" Height="45" Foreground="#FFA8A8A8" FontSize="24" FontWeight="Bold" BorderThickness="1" ClickMode="Press" BorderBrush="#FFC9C9C9"> 
     <Button.Background> 
      <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
       <GradientStop Color="#FFE6E6E6" Offset="0.47"/> 
       <GradientStop Color="White" Offset="1"/> 
      </LinearGradientBrush> 
     </Button.Background> 
    </Button> 
    <Button x:Name="button20" Content="0" HorizontalAlignment="Left" Margin="186,290,0,0" VerticalAlignment="Top" Width="45" Height="45" Foreground="#FFA8A8A8" FontSize="24" FontWeight="Bold" BorderThickness="1" ClickMode="Press" BorderBrush="#FFC9C9C9"> 
     <Button.Background> 
      <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
       <GradientStop Color="#FFE6E6E6" Offset="0.47"/> 
       <GradientStop Color="White" Offset="1"/> 
      </LinearGradientBrush> 
     </Button.Background> 
    </Button> 
    <Button x:Name="button_delete11" Content="&#xE94F;" HorizontalAlignment="Left" Margin="242,290,0,0" VerticalAlignment="Top" Width="45" Height="45" Foreground="#FFA8A8A8" FontSize="16" BorderThickness="1" ClickMode="Press" BorderBrush="#FFC9C9C9" FontFamily="Segoe MDL2 Assets"> 
     <Button.Background> 
      <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
       <GradientStop Color="#FFE6E6E6" Offset="0.47"/> 
       <GradientStop Color="White" Offset="1"/> 
      </LinearGradientBrush> 
     </Button.Background> 
    </Button> 
    <Button x:Name="button_accept11" Content="&#xEC61;" HorizontalAlignment="Left" Margin="298,122,0,0" VerticalAlignment="Top" Width="45" Height="213" Foreground="White" FontSize="20" BorderThickness="0" ClickMode="Press" BorderBrush="{x:Null}" FontFamily="Segoe MDL2 Assets" FontWeight="Bold"> 
     <Button.Background> 
      <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
       <GradientStop Color="#FF6CC98A" Offset="1"/> 
       <GradientStop Color="#FFA2FFC1"/> 
      </LinearGradientBrush> 
     </Button.Background> 
    </Button> 
    <Button x:Name="button_cancel11" Content="&#xEB90;" HorizontalAlignment="Left" Margin="130,290,0,0" VerticalAlignment="Top" Width="45" Height="45" Foreground="White" FontSize="18" BorderThickness="0" BorderBrush="{x:Null}" ClickMode="Press" FontFamily="Segoe MDL2 Assets"> 
     <Button.Background> 
      <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
       <GradientStop Color="#FFF75959" Offset="1"/> 
       <GradientStop Color="#FFFF9E9E"/> 
      </LinearGradientBrush> 
     </Button.Background> 
    </Button> 
    <TextBox 
     x:Name="Textbox_Copy" 
     VerticalAlignment="Center" 
     HorizontalAlignment="Center" 
     Width="200" Margin="442,274,158,174"/> 
</Grid> 
</Page> 

這是後面的代碼:

public sealed partial class MainPage : Page 
{ 
    public MainPage() 
    { 
     this.InitializeComponent(); 
    } 

    private void button11_Tapped(object sender, TappedRoutedEventArgs e) 
    { 
     Button Btn = (Button)sender; 
     Textbox_Copy.Text = Textbox_Copy.Text + Btn.Content; 
    } 
} 
+0

等工具觸摸您設計的文本框時,請檢查是否處理了任何事件。我更改了標題,一些代碼格式和一些語法。 – zx485

回答

0

我以前也遇到這個問題。出現此問題是由於某些事件得到處理。使用xaml spy

+0

我建立另一個項目只有一個文本框(屏蔽)和一些數字鍵集並擺脫多餘的事件處理程序,但到目前爲止沒有好處:( –