2014-09-19 103 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上设置一个事件,以便在失去时“窃取”焦点,但是你会与其他控件进行交互非常困难,并且大多数交互都是不可能的。

您应该评估为什么它不能失去焦点和工作要求。