나는 사용자가 특정 순서로 선택을 할 수있는 상황이있다. (처음에는 사용자가 데이터베이스를 선택하기를 원한다.listboxitem을 선택 항목으로 확장하는 방법은 무엇입니까?
이렇게하려면 이 선택 항목을으로 확장하는 목록 상자를 만드는 작업에 대해 스스로에게 의아해했습니다. 이 확장 만들려면 는 (트릭을 할 것입니다
Visibility="{Binding Path=IsSelected
, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBoxItem}}
, Converter={StaticResource VisibilityOfBool}
, ConverterParameter=False}"
같은) 어려운 일이 아니다.
문제는 전환이 순간적이라는 것입니다. 사용자가 무슨 일이 있었는지 알기가 어렵습니다. 내가 뭘해야 할 것은 숨겨진 패널의 애니메이션 확장 ... 여기
가 무슨 뜻인지 설명하는 페이지입니다 :<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:system="clr-namespace:System;assembly=mscorlib"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300"
Title="SlidingExpansionOnSelected">
<!--x:Class="TorsSandBox.Pages.SlidingExpansionOnSelected"-->
<Page.Resources>
<DataTemplate x:Key="daItemTemplate">
<StackPanel Margin="10">
<StackPanel.Triggers>
<EventTrigger RoutedEvent="ListBoxItem.Selected">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="daTransform"
Storyboard.TargetProperty="ScaleY"
To="1.0" Duration="0:0:1"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
<EventTrigger RoutedEvent="ListBoxItem.Unselected">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="daTransform"
Storyboard.TargetProperty="ScaleY"
To="0" Duration="0:0:1"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</StackPanel.Triggers>
<TextBlock x:Name="Header" Text="{Binding}"/>
<Border x:Name="daBorder"
BorderThickness="3" BorderBrush="DarkOrange" CornerRadius="5"
HorizontalAlignment="Stretch"
Margin="20 10 10 10"
MinHeight="100"
>
<Border.LayoutTransform>
<ScaleTransform x:Name="daTransform" ScaleX="1" ScaleY="0"/>
</Border.LayoutTransform>
<TextBlock Text="Hide this until selected"
HorizontalAlignment="Center" VerticalAlignment="Center" />
</Border>
</StackPanel>
</DataTemplate>
</Page.Resources>
<ListBox
HorizontalContentAlignment="Stretch"
ItemTemplate="{StaticResource daItemTemplate}"
>
<system:String>First row</system:String>
<system:String>Second row</system:String>
<system:String>Third row</system:String>
<system:String>Last row</system:String>
</ListBox>
</Page>
이 트리거가 작동하지 않습니다,하지만 내가 할 수 있기 때문이다 그 (것)들을 해고 하십시요 ... 누군가는 이것을 어떻게하는 것을 알 는가?
감사 토르 Thorbergsen는
좋아요! 이것은 다소 효과가 있을지 모르지만 확실히 "해킹"은 아닙니다. 이 솔루션을 개선 할 수있는 사람은 누구입니까? –
좋아요; 이 태그 대신 첨부 된 속성으로 해결할 수 있습니까? "모든 XAML"솔루션이 아니지만 태그를 사용하는 것보다 약간 더 낫습니다 ... –
대답을 수락 해 주셔서 감사합니다. 첨부 된 속성을 사용하려고했지만 슬프게도 지금까지 작동하지 않았습니다. –