[英]WPF - Prevent ListView from losing focus
當用戶與Calendar控件交互時,我希望ListView中的選定項目保持焦點。
當前,當用戶單擊列表中的項目時,它將變為突出顯示。
當他們單擊日歷時,焦點丟失了,這不是我想要的。
如何防止日歷從ListView竊取焦點? 或如何防止ListView放棄焦點?
當用戶與日歷交互時,您不能停止日歷獲得焦點
但是您可以在沒有焦點的情況下影響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>
您的兩個要求是矛盾的。
根據定義,當用戶與控件“交互”時,他們將焦點放在控件上。 ListView
控件具有焦點時,您不能與Calendar
控件“交互”。
您當然可以通過將IsEnabled
設置為false(以及其他方法)來使Calendar
失去焦點。 您還可以在ListView
上放置一個事件以在丟失時“竊取”焦點,但是您將使與其他控件的交互非常困難,並且大多數交互是不可能的。
您應該評估為什么它不能失去重點並解決該要求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.