【问题标题】:How to add List item Selector to ListBox如何将列表项选择器添加到列表框
【发布时间】:2014-02-13 06:03:11
【问题描述】:

我目前正在使用 Windows Phone 8 应用程序,我有一个带有 TextBlock 的 ListBox,其背景为边框,当我单击列表框中的项目时,没有向用户表明他选择了该项目,如何给它添加选中​​项颜色?

而且我还需要在 ListBox 中选择多个项目,无论选择哪个项目,它的背景颜色都应该更改。

下面是我的代码:

<Grid x:Name="ListBoxLayout" Grid.Row="2" Margin="4,0,0,0">
    <ListBox Name="listBox" 
             HorizontalContentAlignment="Stretch" 
             VerticalContentAlignment="Stretch" 
             SelectionChanged="TopicListboxSelectionChanged"
             ScrollViewer.VerticalScrollBarVisibility="Disabled">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel Name="AnswerCellBack" Tap="AnswerCellBack_Tap" Margin="0,0,0,4" Orientation="Horizontal">
                    <Border Name="borderColor" Background="#FFF2F4F7">
                        <TextBlock Name="text"
                               Width="456"
                               Padding="10,20,10,20"
                               TextAlignment="Center"
                               Text="{Binding Path=Value}"
                               Style="{StaticResource AnswerTextStyle}"/>
                    </Border>
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>              
</Grid>

【问题讨论】:

  • 所以要更改背景颜色,您有两个主要选项 - 为您的 longlistmultiselector 创建自定义样式,或者您可以创建简单的转换器

标签: c# silverlight windows-phone-8 windows-phone


【解决方案1】:

您需要使用 SelectionMode 属性来启用列表框中的多选。 或者您可以使用 Windows Phone 工具包中的 LongListMultiSelector。

要改变选中项的背景颜色,改变列表框的样式模板,如这里所说, http://msdn.microsoft.com/en-us/library/cc278062%28v=vs.95%29.aspx.

在 ListBoxItem 样式中找到这一行,并将其更改为您的颜色

<Rectangle x:Name="fillColor2" Opacity="0" Fill="#FFBADDE9" IsHitTestVisible="False" RadiusX="1" RadiusY="1"/>

您可以在 App.xaml 中的 Application.Resources 标记下声明样式。

或者喜欢你页面中的这两种方式。

第一种方式。

<ListBox Name="lstbx">
<ListBox.Style>
    // Your Style
</ListBox.Style>
</ListBox>

第二种方式。

在标签phone:PhoneApplicationPage.Resources下声明样式,像这样。

<phone:PhoneApplicationPage
x:Class="Test.Test"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
mc:Ignorable="d"
shell:SystemTray.IsVisible="False">

<phone:PhoneApplicationPage.Resources>
    <Style x:Key="MyListStyle"  TargetType="ListBoxItem">
        //your style
    </Style>
</phone:PhoneApplicationPage.Resources>

<ListBox Name="list1" Style="{StaticResource MyListStyle}"
//....

【讨论】:

  • 我尝试在我的页面中添加名为“
  • Vsm 前缀不是必须的.​​. wp8 样式可以直接使用
  • 好的,我已经添加了,但是它在我的边界下方是最重要的,如何解决这个问题?
  • 好的,我将显示屏幕截图,您可以弄清楚它的外观
  • 请查看我的编辑,我的列表项的外观,并且我想要边框颜色和选定项颜色,我如何为我的列表框设置我的 stly 是:在 XAML ItemContainerStyle= "{StaticResource ListBoxItemStyle}"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-26
相关资源
最近更新 更多