Button 용 ControlTemplate을 만들고 있습니다. 마우스를 가리키면 컨텐트에 맞게 크기가 움직 이도록하려고합니다. 그러나 트리거 섹션에서 콘텐츠 크기를 얻는 방법을 모르겠습니다. 여기에 내가 가진 것이있다.단추 템플릿 트리거에서 내용 크기를 어떻게 사용합니까?
<ControlTemplate x:Key="buttonTemplate" TargetType="Button">
<Grid Name="grid" Height="12" Width="12" Opacity="0.4">
<ContentPresenter Name="content" ... />
</Grid>
<ControlTemplate.Triggers>
<EventTrigger RoutedEvent="MouseEnter">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="grid"
Storyboard.TargetProperty="Width"
To="40"
Duration="0:0:0.4"/>
<DoubleAnimation
Storyboard.TargetName="grid"
Storyboard.TargetProperty="Height"
To="20"
Duration="0:0:0.4"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="MouseLeave">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="grid"
Storyboard.TargetProperty="Width"
Duration="0:0:0.2"/>
<DoubleAnimation
Storyboard.TargetName="grid"
Storyboard.TargetProperty="Height"
Duration="0:0:0.2"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
은 내가 방아쇠에 To="40"
대신에 TemplateBinding
를 사용하여 시도했지만, 그 예외가 발생합니다. 트리거에서 동적 값을 사용하려면 어떻게해야합니까?
ScaleTransform을 사용하면 동일한 문제가 발생하지 않습니까? 단추의 내용에서 최대/최소 크기를 얻는 방법을 모르겠습니다. – TheSean
아니요. 현재 레이아웃 단위에 애니메이션을 적용하려고합니다. ScaleTransform의 크기는 백분율로 표시되므로 전체 크기로 애니메이션을 적용하려면 To = "1"을 사용하십시오. –