Как отключить сочетания клавиш Alt-Key в WPF - PullRequest
0 голосов
/ 16 декабря 2010

[.Net 3.5] У меня есть пользовательский элемент управления WPF с именем PickList.

В списке выбора есть Grid с UserControl с именем TouchGrid и DependencyProperty с именем BoundFieldProperty, который является строкой.

TouchGrid имеет свойство ObservableCollection, которое называется Columns.

TouchGridColumn является элементом UIE.

Наконец, у меня есть XAML, который определяет PickList с именем imageList. Он определяет BoundField как «Имя».

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

Я использую это, чтобы назначить DataSource imageList списку объектов, которые имеют свойство «Name», поэтому мой PickList становится списком строк. Проблема заключается в том, что если в строке есть одно или несколько подчеркиваний, первое считается сочетанием клавиш alt, поэтому оно «исчезает» с экрана, если я не нажму клавишу Alt. [Для записи, это приложение с сенсорным экраном!]

Полагаю, это должно быть какое-то значение по умолчанию на уровне UIElement, хотя у меня ничего не выскакивает; Кто-нибудь может догадаться, куда я могу пойти, чтобы победить это?

Ответы [ 2 ]

0 голосов
/ 17 декабря 2010

Microsoft MVP сказал, что эта функция не является обязательной в WPF.Предпочтительным решением является удвоение подчеркивания.Я добавил свойство DisplayName только для чтения к типу в моем списке и сделал его BoundField, который был Name.DisplayName "get" выглядит так:

return new Regex( "_" ).Replace( Name, "__" );

Я не всегда смогу изменить базовый объект, однако в другом месте я получил те же результаты, настроив DataSource следующим образом:

imageList.DataSource = WorkOrderImages.Select( w => new
{
    w,
    DisplayName = ( new Regex( "_" ).Replace( w.Name, "__" ) )
} );
0 голосов
/ 16 декабря 2010

Вы можете создать DataTemplate для элементов, которые содержат TextBlock, который будет привязан к свойству name. Элемент управления TextBlock не учитывает сочетание клавиш Alt-Key и должен отображать текст так, как он хранится.

...