如何将List项目选择器添加到ListBox

时间:2014-02-13 06:03:12

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

我目前正在使用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>

1 个答案:

答案 0 :(得分: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"/>

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

或者喜欢这两种方式。

第一道。

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

第二种方式。

在标记手机下声明样式: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}"
//....