でテキストボックス内のテキストをハイライト表示する方法:は、私は次のシナリオ持ちのWindows PhoneプロジェクトでのWindows Phone 7
- ユーザーの種類テキストボックス
- ユーザーにテキストをテキストボックスを無効にする]ボタンを押します処理を開始する
- テキストの一部の処理が行われ、処理のすべてのステップで、テキストボックス内のテキストの特定の部分をハイライトしたい(テキスト自体は変更されません)。
- 処理が完了すると、テキストボックスが有効になります。
これを行う正しい方法は何ですか。
現在、私はいくつかの選択背景を設定しようとしましたが、テキストボックスSelectメソッドを使用して選択したテキストを設定しましたが、テキストボックスが有効になっていても選択を視覚的に示していません。 SelectedTextプロパティは、選択された正しいテキストを返しますが、少なくともエミュレータでは視覚的な変化はありません。 XAML私はこれを行うには他の方法に開いてい
private void btnTest_Click(object sender, RoutedEventArgs e)
{
txtTest.Select(1, 1);
//on this line SelectedText has the correct value
}
後ろ
<TextBox Name="txtTest" AcceptsReturn="True" Height="250" TextWrapping="Wrap" SelectionBackground="Red"></TextBox>
<Button Name="btnTest" Width="200" Click="btnTest_Click">Test</Button>
コード:ここで
は、私はそれが動作しません使用したコードです。私はセマンティック的にこれは選択肢ではないので、実際には選択肢を使いたくはありませんが、私が望むものを達成する最も簡単な方法だと感じました。特定の文字を強調表示するなど、フォントサイズを大きくするなどの手段を使用することがあります。私はまた、テキストボックスを非表示にして同じように見えるTextBlockに置き換えることができますが、これを達成するためのより簡単な方法があるはずです。この機能を実装する正しい方法は何ですか?
編集モードで強調表示する必要はありませんが、SelectメソッドまたはSelectionStartとSelectionLngthプロパティを設定した後に、電話エミュレータでの選択が視覚的に示されないという問題があります。何らかの方法でリフレッシュを強制する必要がありますか?私は私の質問にコードを追加して、私が現在やっていることを示しています。 – Stilgar
@Stilgar 'Select'を使うのではなく、' SelectionStart'と 'SelectionLength'を明示的に設定すると、私のために働きます。 –
私はこれを試しましたが、それが無効になっているときに悲しいことに不可能な可視表示をするために、テキストボックスにフォーカスがあるようです:( – Stilgar