Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何自定义列表框中所选项目的视图?(WP8)_C#_Windows Phone 8 - Fatal编程技术网

C# 如何自定义列表框中所选项目的视图?(WP8)

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

如何自定义ListBox控件中所选项目的视图?在我的例子中,我想定义所选项目的背景颜色

谢谢大家!

试试这个

   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的样式来实现这一点。使用以下步骤

  • 在VisualStudio(或Blend)中,打开带有列表框的页面(xaml)
  • 查看设计
  • 右键单击列表框并选择编辑其他模板->编辑生成的项目容器(ItemContainerStyle)
  • 选择此样式的名称和位置
  • 在选择状态中,为背景添加新动画
  • 因此,您的故事板将从:

    <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>