2014-09-19 117 views
0

我希望ListView中的選定項目在用戶與Calendar控件交互時保持聚焦。WPF - 防止ListView失去焦點

當前用戶單擊列表中的某個項目時,它會變亮。 List View focused

當他們點擊日曆焦點丟失,我不想。 List View Lost Focus

如何防止我的日曆從ListView中竊取焦點? 或 如何防止我的ListView放棄焦點?

+0

這個問題似乎是不清楚。目前還不清楚你是否希望listView始終擁有***實際的焦點***或者你只是希望它始終具有***突出顯示的顏色***? – 2014-09-19 21:49:45

回答

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 2014-09-19 23:16:29

+0

這就是我一直在尋找的。非常感謝你! – 2014-09-22 16:46:38

0

你的兩個要求是不一致的。

根據定義,當用戶與控件「交互」時,他們給出了該控件的焦點。您不能與Calendar控件「交互」,而ListView控件具有焦點。

通過將IsEnabled設置爲false(以及其他方式),您當然可以使Calendar無法聚焦。你也可以在ListView上設置一個事件,以便在失去時「竊取」焦點,但是你會與其他控件進行交互非常困難,並且大多數交互都是不可能的。

您應該評估爲什麼它不能失去焦點和工作要求。