0
에 대한 전환 없음, 사용자 정의 컨트롤을 만들고 Visual States incl를 추가했습니다. 전환. 상태 변경이 처음 실행될 때 전환이없고 한 상태에서 다른 상태로 급속한 변경 만이 있습니다 (전환이 전혀없는 것처럼). 다음의 모든 상태 변경은 예상대로 전환을 실행합니다. 생성자에서 초기 상태를 설정하려고 시도했지만 도움이되지 않습니다. 아무도, 왜 처음에는 전환이 없다는 것을 알고 있습니까? 여기 VisualStates : Silverlight 4 응용 프로그램에서 첫 번째 상태 변경
내 사용자 지정 컨트롤에서 일부 코드 :[TemplateVisualState(GroupName="CommonState", Name="Expand")]
[TemplateVisualState(GroupName="CommonState", Name="Collapse")]
public class CollapsibleContainer : ContentControl
{
public CollapsibleContainer()
{
this.DefaultStyleKey = typeof(CollapsibleContainer);
VisualStateManager.GoToState(this, "Expand", false);
}
private void BorderHeader_Click(object sender, MouseButtonEventArgs args)
{
if (_contentPresenter.Visibility == Visibility.Collapsed)
{
_contentPresenter.Visibility = Visibility.Visible;
VisualStateManager.GoToState(this, "Expand", true);
}
else
{
_contentPresenter.Visibility = Visibility.Collapsed;
VisualStateManager.GoToState(this, "Collapse", true);
}
}
}
그리고 여기에 시각적 상태에 대한 정의입니다 :
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonState">
<VisualState x:Name="Expand" />
<VisualState x:Name="Collapse">
<Storyboard>
<DoubleAnimation Duration="0" To="180" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.Rotation)" Storyboard.TargetName="ImageArrowNormal" d:IsOptimized="True"/>
<DoubleAnimation Duration="0" To="180" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.Rotation)" Storyboard.TargetName="ImageArrowHover" d:IsOptimized="True"/>
</Storyboard>
</VisualState>
<VisualStateGroup.Transitions>
<VisualTransition x:Name="Expand2Collapse" From="Expand" To="Collapse">
<Storyboard>
<DoubleAnimation Duration="0:0:0.3" To="180" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.Rotation)" Storyboard.TargetName="ImageArrowNormal"/>
<DoubleAnimation Duration="0:0:0.3" To="180" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.Rotation)" Storyboard.TargetName="ImageArrowHover"/>
</Storyboard>
</VisualTransition>
<VisualTransition x:Name="Collapse2Expand" From="Collapse" To="Expand">
<Storyboard>
<DoubleAnimation Duration="0:0:0.3" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.Rotation)" Storyboard.TargetName="ImageArrowNormal"/>
<DoubleAnimation Duration="0:0:0.3" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.Rotation)" Storyboard.TargetName="ImageArrowHover"/>
</Storyboard>
</VisualTransition>
</VisualStateGroup.Transitions>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
바로! 많은 감사합니다! – Aaginor