C# 如何自定义列表框中所选项目的视图?(WP8)
如何自定义ListBox控件中所选项目的视图?在我的例子中,我想定义所选项目的背景颜色 谢谢大家! 试试这个C# 如何自定义列表框中所选项目的视图?(WP8),c#,windows-phone-8,C#,Windows Phone 8,如何自定义ListBox控件中所选项目的视图?在我的例子中,我想定义所选项目的背景颜色 谢谢大家! 试试这个 private void listLocs_SelectionChanged(object sender, SelectionChangedEventArgs e) { ListBoxItem myitem = listLocs.SelectedItem as ListBoxItem; SolidColorBrush brush = new SolidColorBr
private void listLocs_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ListBoxItem myitem = listLocs.SelectedItem as ListBoxItem;
SolidColorBrush brush = new SolidColorBrush(Color.FromArgb(255,255,0,0));
myitem.Background = brush;
}
更多详细信息,请访问:
您可以通过使用ListBox的ItemContainerStyle属性设置ListBoxItem的样式来实现这一点。使用以下步骤
<VisualState x:Name="Selected">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentContainer">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneAccentBrush}"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
致:
当我选择另一个项目时,它是否会恢复项目的上一个视图?这应该可以做到,但如果不是这样,您可以在上一个代码之前进行循环,将颜色重置为默认值…似乎不起作用。它抛出NullReferenceException。也许有一点很重要,我为ListBox使用了一个自定义的ItemTemplate,它在StackPanel中只包含一个TextBlock。不幸的是,它不起作用。我应该创建新的空的还是编辑现有的ItemContainer样式?
<VisualState x:Name="Selected">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentContainer">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneAccentBrush}"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="ContentContainer">
<DiscreteObjectKeyFrame KeyTime="0" Value="Red"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>