LinearGradientBrush가있는 직사각형이 있습니다. 브러시 색상 중 하나가 외부 리소스에 바인딩됩니다.어떻게 이벤트 트리거에서 바운드 데이터에 애니메이션을 적용 할 수 있습니까?
public Color UpperLeftColor
{
get
{
return _upperleftColor;
}
set
{
_upperleftColor = value;
SetPropertyChanged("UpperLeftColor");
}
}
실제로 여러 개의 사각형이 서로의 위에 쌓인하고 맨 위의 사각형에 내가를 만들 싶습니다 바운드 데이터가 간단한 컬러 속성입니다
<Rectangle
Width="40"
Height="40"
RadiusX="5"
RadiusY="5"
Fill="white"
Opacity="0.6">
<Rectangle.OpacityMask>
<LinearGradientBrush
x:Name="UpperShading"
StartPoint="0,0.2"
EndPoint="0,0"
MappingMode="RelativeToBoundingBox">
<GradientStop
Color="Transparent" Offset="0"/>
<GradientStop
x:Name="UpperShadingColor"
Color="{Binding
Source={StaticResource PlaybackResource},
Path=UpperLeftColor}"
Offset="1"/>
</LinearGradientBrush>
</Rectangle.OpacityMask>
</Rectangle>
: 같은 사각형은 보인다 애니메이션을 사용하여 위쪽 사각형을 클릭 할 때 바인딩 된 색상 값을 변경합니다 (MouseDown). 나는 시도 :
<Rectangle
Width="40"
Height="40"
RadiusX="5"
RadiusY="5"
Fill="Transparent">
<Rectangle.Triggers>
<EventTrigger RoutedEvent="MouseDown">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetName
="{Binding Source={StaticResource PlaybackResource}}"
Storyboard.TargetProperty="UpperLeftColor"
To="{Binding Source
={StaticResource PlaybackResource}, Path=LowlightColor}"
Duration="0:0:1"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Rectangle.Triggers>
</Rectangle>
그러나 이것은 오류 발생 :
" 'PlaybackButtonResources'이름이 System.Windows.Shapes '의 이름 범위에서 찾을 수 없습니다 (PlaybackResource는 클래스 PlaybackButtonReources의 키입니다) .구형'."
리소스를 사각형에 추가하려고했지만 동일한 오류 메시지가 나타납니다.
"이벤트 트리거에서 바운드 데이터를 어떻게 애니메이트 할 수 있습니까?"
모든 안내를 환영합니다.
리처드 E, 답장을 보내 주셔서 감사합니다. 이것을 시도했지만 이벤트 트리거가 GradientStop과 다른 사각형에 있습니다. 나는 "System.Windows.Shapes.Rectangle '의 이름 범위에서 이름을 찾을 수 없습니다." – dtaylor
모든 직사각형의 전체 xaml을 게시 할 수 있습니까? –
리차드 E, 실제로 하나의 직사각형에 모든 기능이 생길 때까지 실제로 그 기능을 배웠습니다. 문제 해결됨. 좋은 서식에 대한 또 다른 답변을 결과에 게시하겠습니다. 그러나 이것을 "대답"으로 표시하겠습니다. – dtaylor