【问题标题】:In the ListBoxItem template, how do I change the visual state of the item based upon IsSelected?在 ListBoxItem 模板中,如何根据 IsSelected 更改项目的视觉状态?
【发布时间】:2012-06-26 17:10:43
【问题描述】:

我想增加 ListBox 中选定项目的大小并显示额外的控件。我不确定 ListBoxItem 模板如何知道该项目是否被选中。过去,我会将所有项目都包装在单选按钮中,但它非常笨重,根本没有使用 ListBox 选择。我真的很想有更好的方法。理想情况下,我希望更改处于可视状态,以便为过渡设置动画。

谢谢。

【问题讨论】:

  • 查看这个 SO 问题。 stackoverflow.com/questions/5771362/…,您要做的是在 IsSelected 属性上触发。
  • @CodingGorilla,不是我想要的。寻找一种在选择项目时为过渡设置动画的方法。

标签: wpf listbox


【解决方案1】:

ListBoxItem 已经定义了视觉状态SelectedUnselected。请参阅ListBox Styles and Templates,了解 ListBoxItem 的默认样式中的 ControlTemplate 如何处理这些状态。

【讨论】:

  • 我不确定这些信息对我有何帮助。你能给我一些代码吗? ItemTemplate 的视觉状态如何根据ListBoxItemIsSelected 值而改变。我想我很困惑。
  • 视觉状态更改由 ListBoxItem 执行。您不必更改代码中的状态。只需在 ControlTemplate 中声明您自己的 <VisualState x:Name="Selected"><VisualState x:Name="Unselected"> 我们您的 ListBoxItem 样式并为您喜欢的任何内容设置动画。以 ListBoxItem 的默认样式为例,说明如何声明 VisualStates。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-12
  • 2011-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多