У меня есть объект ListView
в универсальном проекте Windows. Я хочу установить два Visual States
для выбранного и невыделенного состояния. Я скопировал код из MSDN:Visualstate Unselected not called
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListViewItem">
<Border>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal">
</VisualState>
<VisualState x:Name="Disabled"/>
<VisualState x:Name="MouseOver">
</VisualState>
</VisualStateGroup>
<VisualStateGroup x:Name="SelectionStates">
<VisualState x:Name="Unselected">
<Storyboard>
<ColorAnimation Duration="0:0:.1" To="{StaticResource HighlightColor}" Storyboard.TargetName="brd" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)">
<ColorAnimation.EasingFunction>
<PowerEase Power="2" />
</ColorAnimation.EasingFunction>
</ColorAnimation>
</Storyboard>
</VisualState>
<VisualState x:Name="Selected">
<Storyboard>
<ColorAnimation Duration="0:0:.1" To="{StaticResource FlowBlue}" Storyboard.TargetName="brd" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)">
<ColorAnimation.EasingFunction>
<PowerEase Power="2" />
</ColorAnimation.EasingFunction>
</ColorAnimation>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Border Tapped="brd_Tapped" GotFocus="brd_GotFocus" Width="100" Height="85" Background="{StaticResource HighlightColorBrush}" BorderThickness="0" Name="brd" Tag="" Margin="5">
<Grid Name="grd" Tag="">
<TextBlock FontWeight="Bold" VerticalAlignment="Bottom" FontSize="18" HorizontalAlignment="Right" Foreground="{ThemeResource ApplicationPageBackgroundThemeBrush}" />
<control:TextBoxEx LostFocus="TextBoxEx_LostFocus" IsHitTestVisible="True" DoubleTapped="TextBoxEx_DoubleTapped" Background="Transparent" Text="{Binding Path=ItemName, UpdateSourceTrigger=PropertyChanged}" TextWrapping="Wrap" Width="100" />
</Grid>
</Border>
</Border>
</ControlTemplate>
</Setter.Value>
Когда я бегу и нажимаю на элемент, вызывается состояние «Выбранное». Но когда я нажимаю на другой элемент, он также устанавливает состояние Selected. Но первый элемент не отменяет выбор. Я попытался установить SelectionMode в Single, но это не поможет. Что я могу сделать, чтобы снять элемент?
Я думаю, что SelectionMode для ListBox и MultiSelect = «False» будет для ListView, если я правильно помню. –
@ChrisW: Я попытался установить MultiSelect, но свойство больше не существует для ListView в Windows Universal. Я пробовал все варианты, но не использовал. – WJM
Вам удалось решить эту проблему? В настоящее время потянув мои волосы за это -_- –