我目前正在使用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>
答案 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}"
//....