【问题标题】:How to unselect a stackpanel?如何取消选择堆栈面板?
【发布时间】:2011-04-07 16:00:30
【问题描述】:

我有一个 TreeView,一个根 TreeViewItem - 根 TreeViewItem 有水平 Stackpanel 子级,每个子级都有一个 Checkbox 和一个 TreeViewItem,这个 TreeViewItem 有一个标题作为名称,它有一个子级,一个 Shape。

当用户手动点击 Shape 时,它​​会选择整个 Stackpanel 区域。
我需要以编程方式取消选择 Stackpanl。

TreeView 
  TreeViewItem   
     StackPanel [[CheckBox] [TreeViewItem]
                             [System.Windows.Shapes.Shape]]

StackPanel 没有 IsSelected 属性,Shape 对象也没有。

总结如何取消选择堆栈面板?

【问题讨论】:

  • 我认为您只需将 RoutedEvent 设置为“已处理”
  • 为什么你的 StackPanel 中有 TreeViewItem?

标签: c# wpf stackpanel


【解决方案1】:

“选择”堆栈面板是什么意思?你的意思是它周围有虚线装饰器?

如果是这样,因为您的 StackPanel 是可聚焦的,并且虚线装饰器指示哪个元素具有焦点。

您可以在 StackPanel 上设置 Focusable=false 以防止它能够接收焦点。

【讨论】:

  • 你能解释一下你所说的“选中”是什么意思吗
  • 它周围有一个突出显示的蓝色框
  • 有机会截图吗?听起来您的意思是选择了 TreeViewItem,这就是 TreeViewItem 所做的,因为 TreeView 是 ItemsControl 的一种类型,具有选定项的概念
猜你喜欢
  • 1970-01-01
  • 2011-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多