Listboxitem停止显示高亮显示在Windows Phone 8中 [英] Listboxitem stop showing highlited on select in Windows phone 8

查看:108
本文介绍了Listboxitem停止显示高亮显示在Windows Phone 8中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用列表框在Windows Phone 8中显示我的数据.我添加了一些逻辑来启用/禁用单击listboxitem.它现在可以正常工作,但是我不知道列表框的拍子颜色更改现在如何停止工作,任何人都可以帮助我摆脱困境. 这是我的代码

I am using listbox to show my data in windows phone 8. I have added some logic for enable/disable click of listboxitem. Its working correct now but how I don't know on tap color change for listbox is now stop working can anyone please help me to get out from this. here is my code

<ListBox Name="lstCourses" 
                     ItemsSource="{StaticResource ListOfCourse}"
                     toolkit:TiltEffect.IsTiltEnabled="True"
                     SelectionChanged="lstCourses_SelectionChanged">
                    <ListBox.ItemContainerStyle>
                        <Style TargetType="ListBoxItem">
                            <Setter Property="Template">
                                <Setter.Value>
                                    <ControlTemplate TargetType="ListBoxItem">
                                        <ContentPresenter IsHitTestVisible="{Binding IsEnabled}"/>
                                    </ControlTemplate>
                                </Setter.Value>
                            </Setter>
                        </Style>
                    </ListBox.ItemContainerStyle>

                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <Grid>
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="Auto"/>
                                    <RowDefinition Height="Auto"/>
                                </Grid.RowDefinitions>

                                <TextBlock TextWrapping="Wrap" 
                                           Grid.Row="0"
                                           FontFamily="Segoe WP SemiLight"
                                           FontSize="25"
                                           Text="{Binding CourseName}"/>

                                <Grid Grid.Row="1">
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="*"/>
                                        <ColumnDefinition Width="3*"/>
                                    </Grid.ColumnDefinitions>
                                    <TextBlock TextWrapping="Wrap" 
                                               Grid.Column="0"
                                               FontFamily="Segoe WP SemiLight"
                                               FontSize="20"
                                               Foreground="{StaticResource PhoneSubtleBrush}"
                                               Text="Instructor: "/>
                                    <TextBlock TextWrapping="Wrap" 
                                               Grid.Column="1"
                                               FontFamily="Segoe WP SemiLight"
                                               FontSize="20"
                                               Text="{Binding CourseInstructor, Converter={StaticResource InstructorConvertor}}"
                                               Foreground="{StaticResource PhoneSubtleBrush}"/>
                                </Grid>
                            </Grid>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
            </ListBox>

推荐答案

之所以会发生这种情况,是因为您覆盖了默认的ItemContainerStyle(它为null)并为ListBoxItem设置了新样式,而没有为选定的/未选定的视觉状态提供情节提要.

That happens because you override the default ItemContainerStyle which is null and setting a new style for the ListBoxItem without a storyboard for the Selected / Unselected Visual States.

看看默认样式.阅读本文后,应该做的很简单.

Have a look at the default styles. What you should do will be straightforward after you read the article.

编辑

这是一个例子.

<ListBox 
    Name="lstCourses" 
    ItemsSource="{StaticResource ListOfCourse}"
    toolkit:TiltEffect.IsTiltEnabled="True"
    SelectionChanged="lstCourses_SelectionChanged">
    <ListBox.ItemContainerStyle>
        <Style TargetType="ListBoxItem">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="ListBoxItem">
                        <Grid 
                            IsHitTestVisible="{Binding IsEnabled}">
                            <Grid.RowDefinitions>
                                <RowDefinition Height="Auto"/>
                                <RowDefinition Height="Auto"/>
                            </Grid.RowDefinitions>

                            <VisualStateManager.VisualStateGroups>
                                <VisualStateGroup x:Name="SelectionState">
                                    <VisualState x:Name="Unselected" />
                                    <VisualState x:Name="Selected">
                                        <Storyboard>
                                            <ObjectAnimationUsingKeyFrames
                                                Storyboard.TargetName="textbox1"
                                                Storyboard.TargetProperty="Foreground">
                                                <DiscreteObjectKeyFrame 
                                                    KeyTime="0:0:0" Value="{StaticResource PhoneAccentBrush}"/>
                                            </ObjectAnimationUsingKeyFrames>
                                            <ObjectAnimationUsingKeyFrames
                                                Storyboard.TargetName="textbox2"
                                                Storyboard.TargetProperty="Foreground">
                                                <DiscreteObjectKeyFrame 
                                                    KeyTime="0:0:0" Value="{StaticResource PhoneAccentBrush}"/>
                                            </ObjectAnimationUsingKeyFrames>
                                            <ObjectAnimationUsingKeyFrames
                                                Storyboard.TargetName="textbox3"
                                                Storyboard.TargetProperty="Foreground">
                                                <DiscreteObjectKeyFrame 
                                                    KeyTime="0:0:0" Value="{StaticResource PhoneAccentBrush}"/>
                                            </ObjectAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </VisualState>
                                </VisualStateGroup>
                            </VisualStateManager.VisualStateGroups>


                            <TextBlock 
                                x:Name="textbox1"
                                TextWrapping="Wrap" 
                                Grid.Row="0"
                                FontFamily="Segoe WP SemiLight"
                                FontSize="25"
                                Text="{Binding CourseName}"
                                />
                            <Grid Grid.Row="1">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="*"/>
                                    <ColumnDefinition Width="3*"/>
                                </Grid.ColumnDefinitions>
                                <TextBlock 
                                    x:Name="textbox2"
                                    TextWrapping="Wrap" 
                                    Grid.Column="0"
                                    FontFamily="Segoe WP SemiLight"
                                    FontSize="20"
                                    Foreground="{StaticResource PhoneSubtleBrush}"
                                    Text="Instructor: "
                                    />
                                <TextBlock 
                                    x:Name="textbox3"
                                    TextWrapping="Wrap" 
                                    Grid.Column="1"
                                    FontFamily="Segoe WP SemiLight"
                                    FontSize="20"
                                    Text="{Binding CourseInstructor, Converter={StaticResource InstructorConvertor}}"
                                    Foreground="{StaticResource PhoneSubtleBrush}"
                                    />
                            </Grid>
                        </Grid>                            
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </ListBox.ItemContainerStyle>
</ListBox>

这篇关于Listboxitem停止显示高亮显示在Windows Phone 8中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆