2017-12-30 98 views
1

は、(単純に)テキストボックスで特定のフォーマットを取得することは可能ですか?このuwp xaml - カスタム入力フォーマットをテキストボックスに設定する

result

ようなので、私はこのようなXAMLコードがあります。

<TextBox Grid.Column="1" PlaceholderText="100" Height="52" Width="80" VerticalAlignment="Center" FontSize="25" /> 

をしかし、私はそれに形式を持っていると思います。だから間違ったデータでいっぱいになる。

だから、1つの入力フィールドが唯一のint秒にする必要があり、別の1だからフォーマット00:00 0でなければなら0-9からint型であると、それが自動:を追加し、さらに2つのintを可能にしています。

それは可能ですか?

+0

このhttps://stackoverflow.com/questions/32892901/windows-10-universal-windows-app-data-validationはここで、これは長いですが、役立つかもしれない、プリズムを使用することを示していますします。https:/ /stackoverflow.com/questions/43268648/mvvm-validation-in-uwp –

+0

これはバリデーションではなく、一種の正規表現プリセットです(入力を開始すると、自動的に埋められます)。javascriptと同様に – Robin

+0

あなたは、あなたが必要とするものの正確な出力を得ることができますが、私はそれがどのように見えるかは分かりませんが、このようなことに対する行動を潜在的に書くことができます。次に、数字のテキストボックス[ビヘイビア](http://julmar.com/blog/programming/numerictextboxbehavior-wsa/)の例を示します。たぶんあなたにインスピレーションを与えるでしょう。 – jsmyth886

答えて

1

私はUWPについてのSOに良い質問を待っていた、と私は便利かもしれない何かがある -

XAML

<TextBox Name="MyTextBox" PlaceholderText="00:00" Height="52" Width="80" VerticalAlignment="Center" FontSize="25" MaxLength="5" KeyDown="TextBox_KeyDown" TextChanged="TextBox_TextChanged"/> 

C#

bool m_BackPressed = false; // It is because if user pres back button then it will remove ":" sign else it will never removed 

private void TextBox_KeyDown(object sender, KeyRoutedEventArgs e) 
{ 
    m_BackPressed = (e.Key.ToString().Equals("Back")) ? true : false; 

    if (e.Key.ToString().Equals("Back")) 
    { 
     e.Handled = false; 
     return; 
     m_BackPressed = true; 
    } 
    for (int i = 0; i < 10; i++) 
    { 
     if (e.Key.ToString() == string.Format("Number{0}", i) || e.Key.ToString() == string.Format("NumberPad{0}", i)) 
     { 
      e.Handled = false; 
      return; 
     } 
    }    
    e.Handled = true; 
}   

private void TextBox_TextChanged(object sender, TextChangedEventArgs e) 
{ 
    if (MyTextBox.Text.Length == 2 && m_BackPressed != true) 
    { 
     MyTextBox.Text += ":"; 
     MyTextBox.Select(MyTextBox.Text.Length, 0);     
    }    
} 

出力を

Output

+1

を書くときに自動的に ':'を追加することです。まさに私が必要なもの! – Robin

+0

数値の「制限」も可能ですか?あなたが挿入できる文字の最大量であるように、 'xx:xx'と言っていますか? – Robin

+0

@Robinは私のxamlコードをコピーしていないようです。私は既に文字数を5 incに制限しています。Symbol –

関連する問題