2009-12-03 5 views
4

Я показываю адрес Mac в приложении WPF. Я хочу, чтобы MAC-адрес, чтобы быть по выбору, чтобы копировать/вставить, поэтому я использую ReadOnly TextBoxWPF textbox и doubleclick

Когда пользователь дважды щелкните Я хочу, чтобы выбрать весь MACADDRESS

поведение по умолчанию в WPF и Windows, является двойным щелчком мыши, выберите часть номера между двоеточиями , поэтому, когда MAC-адрес: 00: 55: 66: 77: 99

и пользователь дважды кликает, только одна часть адреса mac (например, 55) выбрано Есть ли способ без кода, чтобы сделать выбор для всего контента для текстового поля

или, может быть, я не должен использовать текстовое поле?

Благодаря

ответ

5

В текстовом поле MouseDoubleClick текстового поля вы можете вызвать метод selectAll(), чтобы выбрать текст внутри него.

void textBox_MouseDoubleClick(object sender, MouseButtonEventArgs e) 
{ 
    (sender as TextBox).SelectAll(); 
} 
0

Разве вы не можете просто обрабатывать событие MouseDoubleClick? В противном случае, если вы хотите всегда предотвращать частичный выбор, вы можете обработать событие SelectionChanged. В любом случае вы можете использовать метод SelectAll.

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

1

К сожалению, я не думаю, что есть способ сделать это прямо в TextBox.

Говоря это, было бы тривиально добавить это поведение в текстовое поле через Attached Property или поведение выражения (мои предпочтения). Просто наблюдайте за изменением выбора, и если есть что-то выбранное, выберите все. Затем вы можете легко использовать его в других местах, не добавляя код в свой код за файлами. Вы все еще добавляете код, но не в фактический класс UserControl или Window, а скорее в компонент многократного использования, который будет просто вставлен в xaml.

0

Я любил идею поведения, но мне пришлось перераспределить некоторые наложения связанные сборки, и я не знаю Смешать еще. Так что я в конечном итоге создание нового типа текстового поля, который наследует от текстового поля, и делает SelectAll когда MouseDoubleClick

Спасибо за все ответы