【发布时间】:2012-01-19 06:51:52
【问题描述】:
我现在面临着许多人在使用列表框时遇到的最常见的问题。虽然我在论坛上找到了很多答案,但似乎没有什么对我有用,否则我弄错了。 .
我已经通过代码创建了一个列表框。每个列表框项都有一个堆栈面板,其中有两个文本块。堆栈面板具有垂直方向。文本块的前景已设置为特定颜色。当一个项目被选中或单击时,它会移动到另一个页面,并在新页面关闭时返回到旧页面。
我的问题是,当单击列表框项目时,它不显示选择颜色,默认情况下,选择颜色是手机的强调色,然后再转到下一页。是不是因为在创建列表框时已经设置了文本块的颜色?
所以我尝试像这样通过 SelectionChanged() 将其设置为所选项目的前景
ListBoxItem selItem = (ListBoxItem)(listboxNotes.ItemContainerGenerator.ContainerFromIndex(listboxNotes.SelectedIndex));
selItem .Foreground = (SolidColorBrush)Application.Current.Resources["PhoneAccentBrush"];
但这不起作用,我认为它是因为项目内部有一个堆栈面板。
这需要怎么做?我需要检索堆栈面板内的文本块并设置前景吗?我没有在这里使用绑定。可视化树助手???
谢谢
阿尔法
【问题讨论】:
-
我从未在 WP7 应用程序上看到选择/按下的颜色。您确定要针对该平台进行设计吗?
-
@willmel 是的。 .默认列表框具有按下的颜色。 .
-
如果你想要一个“按下”状态,你应该看看 TiltEffect 。 windowsphonegeek.com/articles/…
-
@willmel 我应该担心吗? :(我见过应用程序。我创建的两个列表框中所选项目的前景都发生了变化。所以我认为这是默认行为:(
-
您需要为 ListBox 的
DataTemplate发布 XAML。它是强调颜色出现的默认行为。但它也被认为是糟糕的用户体验。
标签: windows-phone-7 listbox selecteditem