在Windows Phone的項目,我有以下情形:如何突出顯示文本框的文本中的Windows Phone 7
- 用戶鍵入一些文字的文本框
- 用戶按下一個按鈕,關閉文本框並開始一個過程
- 對文本進行一些處理,並在處理的每一步中,我想突出顯示文本框中文本的某些部分(文本本身不會改變)。
- 處理完成後啓用文本框。
這樣做的正確方法是什麼?
目前我試圖設置一些選擇背景,並使用文本框選擇方法設置選定的文本,但即使啓用文本框,也沒有視覺指示選擇。 SelectedText屬性返回正確的選定文本,但至少在emulatior中沒有任何可視變化。
下面是我用不工作代碼: XAML
<TextBox Name="txtTest" AcceptsReturn="True" Height="250" TextWrapping="Wrap" SelectionBackground="Red"></TextBox>
<Button Name="btnTest" Width="200" Click="btnTest_Click">Test</Button>
代碼背後
private void btnTest_Click(object sender, RoutedEventArgs e)
{
txtTest.Select(1, 1);
//on this line SelectedText has the correct value
}
我打開其他的方法來做到這一點。我不是真的想使用這個選擇,因爲語義上這不是一個選擇,但我覺得這是實現我想要的最簡單的方法。我可以使用其他方法來突出顯示特定字符,例如使字體變大。我也可能隱藏文本框,並將其替換爲看起來相同的TextBlock,但我覺得應該有更簡單的方法來實現這一點。
那麼實現此功能的正確方法是什麼?
我不需要在編輯模式下突出顯示,但問題是,在使用Select方法或設置SelectionStart和SelectionLngth屬性後,手機模擬器中沒有可見的選擇指示。我需要以某種方式強制刷新嗎?我在我的問題中添加了代碼以顯示我目前正在執行的操作。 – Stilgar 2012-03-04 13:20:45
@Stilgar如果我明確設置了SelectionStart和SelectionLength,而不是使用Select,它對我有用。 – 2012-03-05 22:15:05
我試過這個,但看起來文本框應該有焦點,以便有可見的指示,當它被禁用時可悲的是不可能的:( – Stilgar 2012-03-05 22:22:14