Существует ли способ программно отменить редактирование текстового поля?

В моем Приложении для Windows Phone 7 у меня есть однострочное текстовое поле. Когда пользователь нажимает {ENTER}, я хочу признать, что текстовое поле оценивает и переключает текстовое поле назад в нормальный нережим редактирования.

В основном существует ли способ программно отменить редактирование текстового поля?

Я попробовал, вызывают режим Visual State Manager into Normal, который действительно изменяет визуальный стиль, но текстовое поле находится все еще в режиме редактирования, и экранная клавиатура все еще показывает.

            VisualStateManager.GoToState(
                this.MyTextBox,
                "Normal",
                true);

            VisualStateManager.GoToState(
                this.MyTextBox,
                "Unfocused",
                true);

Также попробованный, чтобы программно выбрать родительское управление, но это, кажется, не работает также.

Я думаю, что должен пропускать что-то простое, кто-то, должно быть, сделал это миллион раз - любая справка, очень ценившая.

Спасибо,

Обновление: Я пытался установить фокус на другое Управление, но это не работало, клавиатура SIP никогда не будет исчезать.

Но я изобразил его использующий другой метод. Прием должен был использовать флаг IsReadOnly. То, когда потерянный фокус или входит, было нажато, я задержал управление к только для чтения, который обновляет стиль. Все, что я должен был сделать, было обновить мои визуальные стили, таким образом, это выглядело правильным и теперь работает отлично.

Если это имеет значение мой код теперь выглядит примерно так:

    private void MyTextBox_GotFocus(object sender, RoutedEventArgs e)
    {
        this.MyTextBox.IsReadOnly = false;
        this.MyTextBox.SelectAll();            
    }

    private void MyTextBox_LostFocus(object sender, RoutedEventArgs e)
    {
        this.MyTextBox.IsReadOnly = true;
    }

   private void MyTextBox_KeyUp(object sender, KeyEventArgs e)
    {
        if (e.Key == Key.Enter)
        {

           this.MyTextBox.IsReadOnly = true;
            VisualStateManager.GoToState(
                this.MyTextBox,
                "ReadOnly",
                true);
            VisualStateManager.GoToState(
                this.MyTextBox,
                "Unfocused",
                true);
            VisualStateManager.GoToState(
                this.MyTextBox,
                "Valid",
                true);
       }
   }
5
задан Justin Johnson 3 August 2010 в 20:46
поделиться