1

我开发了 Windows Phone 8 应用程序。我正在使用长列表选择器来显示列表中的项目。到目前为止一切都很好。当用户单击长列表选择器的任何项目时,我想突出显示该项目的背景颜色,以便用户清楚地了解他/她选择了一个项目。

您能否告诉我如何在 Windows Phone 8 中执行此操作。我期待着回复。

4

2 回答 2

3

http://code.msdn.microsoft.com/wpapps/Highlight-a-selected-item-30ced444 详细示例

于 2013-12-18T12:08:38.933 回答
0

我喜欢通过代码更好地控制我的应用程序,并避免在 xaml 中执行可能会变得复杂的事情。下面是我感觉的一种更简单的方法,它可以在代码中提供更多控制,并且需要对 xaml 进行最少的更改。它使 xaml 保持干净整洁,这应该是一个非常简单的操作。

  1. 将“BackColor”(或其他字符串)属性添加到您的绑定对象

    public string BackColor { get; set; }
    
  2. 将该属性绑定到您的 xaml 中的某些内容,例如背景或堆栈面板或边框的边框颜色,这些内容将呈现视觉变化。例如

    <StackPanel Orientation="Horizontal" Background="{Binding BackColor}">
    
  3. 在您的长列表选择器代码“SelectionChanged”事件中,使用 SelectionChangedEventArgs 中的 AdditionalItems 和 RemovedItems 集合更新绑定对象

    if (e.AddedItems.Count > 0)
    {
        if (e.AddedItems[0] != null)
        {
            oMyObject = (MyServices.MyObjectDao)e.AddedItems[0];
            oMyObject.BackColor = "Red";
        }
    }
    
    if (e.RemovedItems.Count > 0)
    {
        if (e.RemovedItems[0] != null)
        {
            oMyObject = (MySercvices.MyObjectDao)e.RemovedItems[0];
            oMyObject.BackColor = "Black";
        }
    }
    

您可以使用示例中的简单颜色,也可以使用 xaml 中的任何预定义颜色

于 2014-07-23T07:57:57.320 回答