2012-05-09 2 views
1

Можно ли не отображать системную клавиатуру, когда вы нажимаете текстовое поле? Ive создал пользовательскую клавиатуру и может работать только с текстовым блоком, из-за этого я не могу удалить только части предложения.Скрыть сенсорную клавиатуру

ответ

3

Если вы установили IsReadOnly на номер true, пользователь все равно может выбрать текст в TextBox для копирования вставки, и ОС не отображает клавиатуру ввода программного обеспечения при выборе. Тем не менее, вы все равно можете изменить содержимое кода TextBox. Например;

<TextBox x:Name="ExampleTextBox" 
     IsReadOnly="True" 
     Text="Initial Content" 
     GotFocus="ExampleTextBox_GotFocus" 
     /> 

И в вашем коде;

private void ExampleTextBox_GotFocus(object sender, System.Windows.RoutedEventArgs e) { 
    ExampleTextBox.Text += " ... focused!"; 
} 

предотвратить бы пользователю вводить текст с помощью программной клавиатуры, но будет добавлять «... внимание» каждый раз, когда они дают фокус на TextBox. Продуманный пример, но вы поняли.

Единственное, что я предлагаю, это переустановить TextBox. По умолчанию, когда установлено IsReadOnly, TextBox предоставит визуальные сигналы, которые пользователь не может изменить. Это не так.

+0

Wow, easy one ! Спасибо. Просто то, что я хотел. Теперь я могу использовать пользовательскую клавиатуру и получать вещи из текстового поля, такого как выделенный текст и копия! Позаботьтесь об этом позже и примите. Еще раз спасибо. – 0x49D1

+0

Не беспокойтесь. Вы можете использовать этот же трюк (с соответствующим стилем), чтобы сделать то, что кажется «TextBlock», но чтобы пользователь мог скопировать содержимое. – MrMDavidson

1

Если пользователь коснется клавиатуры, клавиатура получит фокус.

Единственный вариант, который вы, как разработчик, - это поймать его и вызвать this.focus, перемещая фокус в сторону от текстового поля.

Это, однако, означает, что появится мерцание, когда клавиатура по умолчанию всплывает и скрывается.

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

+0

Но без фокуса текстовое поле ведет себя точно так же, как текстовый блок тогда. Например, не будет возможности выбрать части текста – 0x49D1

+1

, почему вы хотите написать приложение, если не можете определить первое препятствие? Текстовое поле имеет свойство text. Все операции можно сделать, не сосредотачиваясь на этом. –

+0

Есть много приложений для клавиатуры. Некоторые даже имеют источник, доступный в Интернете http://www.silverlightshow.net/items/Windows-Phone-7-Creating-Custom-Keyboard.aspx посмотреть ссылку –

Смежные вопросы