如何以编程方式在UI上高亮显示LongListSelector项

本文关键字:高亮 显示 LongListSelector UI 编程 方式 | 更新日期: 2023-09-27 18:25:22

我需要在UI上为用户突出显示并操作LongListSelector的一项。我在代码示例中看到(这个)示例,但不能很好地理解它。

如何更改属于SelectedItem的内部StackPanel的背景,并在代码后面以编程方式向其中添加TextBlock

<phone:LongListSelector.ItemTemplate>
    <DataTemplate>
        <StackPanel Orientation="Horizontal">
        </StackPanel>
    </DataTemplate>
</phone:LongListSelector.ItemTemplate>

如何以编程方式在UI上高亮显示LongListSelector项

要使链接的样本与StackPanel 一起工作

private void lls_SelectionChanged(object sender, SelectionChangedEventArgs e) {
  var spList = new List<StackPanel>();
  GetItemsRecursive<StackPanel>(lls, ref spList);
  // Selected. 
  if (e.AddedItems.Count > 0 && e.AddedItems[0] != null) {
    foreach (var sp in spList) {
      if (e.AddedItems[0].Equals(sp.DataContext)) {
        sp.Background = new SolidColorBrush(Colors.Green);
        sp.Children.Add(new TextBlock { Text = "Hello" });
      }
    }
  }
  // Unselected. 
  if (e.RemovedItems.Count > 0 && e.RemovedItems[0] != null) {
    foreach (var sp in spList) {
      if (e.RemovedItems[0].Equals(sp.DataContext)) {
        sp.Background = (SolidColorBrush)Resources["PhoneBackgroundBrush"];
        sp.Children.RemoveAt(sp.Children.Count - 1);
      }
    }
  } 
}

我不确定我是否正确理解了你的问题,因为我是windows phone开发的新手。以下是用于更改stackpanel的背景并以编程方式向其添加文本块的代码。

enter code here
    // Constructor
    public MainPage()
    {
        InitializeComponent();
        // change the background of stackpanel
        StackPanel st = new StackPanel();
        SolidColorBrush mysolidbrush = new SolidColorBrush();
        mysolidbrush.Color = Color.FromArgb(255, 100,100,10); // RGB color
        st.Background = mysolidbrush;
        // Adding textblock to the stackpanel 
        TextBlock txtblk = new TextBlock();
        st.Children.Add(txtblk);
    }

最佳,B