簡體   English   中英

WPF-防止ListView失去焦點

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM