0
以下ControlTemplate有什么问题为什么找不到指定的Brush?我总是得到错误无法找到触发器目标'stateBrush'。在我的模板中,当状态更改为WaitForActive时,我将开始为背景设置动画,并且当状态更改为“活动”时,我想将其设置为绿色。很简单。我的方法有点缺陷吗?无法找到触发目标'stateBrush'
当状态改变时,真的有必要删除旧的故事板。很多国家的变化之后,会不会有很多创建的故事板?
<Style TargetType="{x:Type local:GateControl}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:GateControl}">
<Grid ClipToBounds="True" x:Name="rootLayout">
<Grid.Background>
<SolidColorBrush x:Name="stateBrush"/>
</Grid.Background>
<Rectangle Stroke="{TemplateBinding StrokeBrush}"
StrokeThickness="{TemplateBinding StrokeThickness}">
<Rectangle.Fill>
<LinearGradientBrush EndPoint="1,1" StartPoint="0,0">
<GradientStop Color="#AA111111" Offset="0"/>
<GradientStop Color="#AA111111" Offset="1"/>
<GradientStop Color="Transparent" Offset="0.5"/>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
<local:Cross StrokeBrush="{TemplateBinding StrokeBrush}"
StrokeThickness="{TemplateBinding StrokeThickness}" />
</Grid>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding Path=State, RelativeSource={RelativeSource Self}}" Value="WaitForActive">
<DataTrigger.EnterActions>
<BeginStoryboard x:Name="waitForActiveStoryboard">
<Storyboard>
<ColorAnimationUsingKeyFrames Storyboard.TargetName="stateBrush" Storyboard.TargetProperty="Color"
FillBehavior="HoldEnd"
RepeatBehavior="Forever"
AutoReverse="True">
<ColorAnimationUsingKeyFrames.KeyFrames>
<LinearColorKeyFrame KeyTime="00:00:00" Value="Green"/>
<LinearColorKeyFrame KeyTime="00:00:0.25" Value="Green"/>
<LinearColorKeyFrame KeyTime="00:00:0.5" Value="Yellow" />
<LinearColorKeyFrame KeyTime="00:00:0.75" Value="Yellow" />
</ColorAnimationUsingKeyFrames.KeyFrames>
</ColorAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<RemoveStoryboard BeginStoryboardName="waitForActiveStoryboard" />
</DataTrigger.ExitActions>
</DataTrigger>
<DataTrigger Binding="{Binding Path=State, RelativeSource={RelativeSource Self}}" Value="Active">
<Setter TargetName="stateBrush" Property="Color" Value="Green" />
</DataTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
我已经使用Tag属性别的东西:( – bitbonk 2010-01-26 16:39:47
为了解决这个我可以自定义附加属性只是添加的元素。**这通常是一个更好的主意,而不是使用标签属性** – bitbonk 2010-01-28 06:22:23