2009-08-27 1 views
0

次のControlTemplateで何が問題なのですか?名前付きブラシが見つからないのはなぜですか?私はいつもエラートリガーターゲット '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> 

答えて

関連する問題