2014-09-19 13 views
0

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

В настоящее время, когда пользователь нажимает на элемент в списке, он подсвечивается. List View focused

Когда они нажимают календарь, фокус утерян, чего я не хочу. List View Lost Focus

Как предотвратить мой календарь от кражи фокуса из ListView? или Как предотвратить листинг ListView от фокуса?

+0

появляется этот вопрос неясным. Непонятно, что вы хотите, чтобы listView всегда имел *** фактический фокус ***, или вы просто хотите, чтобы он всегда имел *** цвет подсветки ***? –

ответ

2

Вы не можете остановить календарь получать фокус, когда пользователь взаимодействует с календарем

Но вы можете влиять на цвет ListView выбранного товара, когда он не имеет фокуса
Вы должны установить цвет ListView выбранный элемент не сфокусирован
Они устанавливаются прозрачным, но только выбрать цвет

<Style x:Key="ListViewItemNoColor" TargetType="ListViewItem"> 
    <Style.Resources> 
     <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black"/> 
     <!-- Background of selected item when focussed --> 
     <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/> 
     <!-- Background of selected item when not focussed --> 
     <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent" /> 
    </Style.Resources> 
</Style> 
+0

+1 Это хороший способ обхода проблемы. – BradleyDotNET

+0

Это то, что я искал. Большое спасибо! –

0

Ваши два требования противоречат друг другу.

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

Вы можете сделать Calendar неуправляемым, установив IsEnabled в значение false (между прочим). Вы также можете поместить событие на ListView, чтобы «украсть» фокус всякий раз, когда он потерян, но вы затруднили бы взаимодействие с другими элементами управления, и большинство взаимодействий было бы невозможно.

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

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