로딩 컨트롤을 사용하면 사용자 컨트롤 상단에 "로드 중"이라고 표시된 사용자 컨트롤이로드 될 때까지 내 프로그램과 상호 작용하지 못하게됩니다.시각적 상태를 사용하여 블렌드의 가시성 전환
시각적 상태를 사용하여 "로드 중"컨트롤의 가시성을 천천히 사라 지도록 축소하고 내 프로그램 내에서 다른 상태로 축소되도록 유지하고 싶습니다. 나는 확장하거나 축소 상태를 트리거 할 때
는 "로드"ContentControl을 표시되고<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="VisualStateGroup">
<VisualStateGroup.Transitions>
<VisualTransition GeneratedDuration="0:0:0.5" To="Collapsed">
<VisualTransition.GeneratedEasingFunction>
<CubicEase EasingMode="EaseInOut"/>
</VisualTransition.GeneratedEasingFunction>
</VisualTransition>
<VisualTransition GeneratedDuration="0:0:0.5" To="Expanded">
<VisualTransition.GeneratedEasingFunction>
<CubicEase EasingMode="EaseInOut"/>
</VisualTransition.GeneratedEasingFunction>
</VisualTransition>
<VisualTransition GeneratedDuration="0:0:0.5" To="Loaded">
<VisualTransition.GeneratedEasingFunction>
<CubicEase EasingMode="EaseInOut"/>
</VisualTransition.GeneratedEasingFunction>
</VisualTransition>
</VisualStateGroup.Transitions>
<VisualState x:Name="Expanded">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="contentControl">
<DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Collapsed}"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Collapsed">
<Storyboard>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Width)" Storyboard.TargetName="metaGrid">
<EasingDoubleKeyFrame KeyTime="0" Value="0"/>
</DoubleAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="contentControl">
<DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Collapsed}"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Loaded">
<Storyboard>
<BooleanAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.IsHitTestVisible)" Storyboard.TargetName="contentControl">
<DiscreteBooleanKeyFrame KeyTime="0" Value="False"/>
</BooleanAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="contentControl">
<EasingDoubleKeyFrame KeyTime="0" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
지금이 가진 문제가 있음 : 어디
<ContentControl x:Name="contentControl" Content="{StaticResource loadingAnimation}">
<i:Interaction.Triggers>
<ei:DataTrigger Value="false" Binding="{Binding IsLoadingAnimationVisible}">
<ei:GoToStateAction StateName="Loaded"/>
</ei:DataTrigger>
</i:Interaction.Triggers>
</ContentControl>
:
나는 현재 나의 부하 제어 할 수 있습니다 0.5 초 이상 지나면 사라집니다. 로드 된 상태가 트리거되면 어떻게로드 컨트롤이 축소되도록 영구적으로 설정할 수 있습니까?
편집
나는 (즉, 설정이 혼합의 가시성을 전환하는 올바른 방법입니다 확실하지 않다 ishittestvisible = 거짓과 opacitiy = 0하지만 내가 visibility.collapsed 설정으로 생각할 수있는 유일한 방법이었다 didnt는 전환 할 것 같았습니다. 쓰러 질 것입니다.)
어떻게 * 천천히 * Collapsed와 같은 개별적인 가시성 값을 * 퇴색 시키시겠습니까? 이것은 불연속 값이므로'Collapsed'이거나 그렇지 않습니다. – Sheridan
나는 Visibility.Visible하지만 Height = 0 인 요소가 "Visible"이 아닌 예를 들어 C#의 감각이 아닌 영어의 의미에서 Visiblity라는 단어를 사용합니다. – user1