2009-11-25 174 views
0

這是我故事板動畫

  1. 一個控件模板在我window.resource按鈕,具有帶outerglow(命名爲 - TasksToggleButtonOuterGlowBitmapEffect)的橢圓形和文本
  2. 正在使用該模板

這個按鈕是什麼,我需要

1.在上述橢圓的outerglow工作 2.我會在任何時刻

當我試圖與下面的代碼片段觸發來自我隱藏文件,這個故事板分鏡腳本,框架給了我一個運行時除了說明它是不是能夠找到控制,TasksToggleButtonOuterGlowBitmapEffect

<Window.Resource> 
    <ControlTemplate x:Key="DefaultTasksToggleButtonTemplate" TargetType="ToggleButton"> 
     <Grid Margin="2"> 
      <Border BorderBrush="White" BorderThickness="2" CornerRadius="20"> 
       <Border.BitmapEffect> 
        <OuterGlowBitmapEffect x:Name="TasksToggleButtonOuterGlowBitmapEffect" GlowColor="LightGray" /> 
       </Border.BitmapEffect> 
      </Border> 
      <Ellipse Fill="Red" Width="20" Height="20" Margin="2" /> 
      <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" /> 
     </Grid> 
    </ControlTemplate> 


    <Storyboard x:Key="GlowStoryboard"> 
     <DoubleAnimation Storyboard.TargetName="TasksToggleButtonOuterGlowBitmapEffect" Storyboard.TargetProperty="GlowSize" From="5" To="10" /> 
    </Storyboard> 

</Window.Resources> 

更新 - 我想這是在資源,以便任何按鈕就可以使用它

回答

0

表面上看,這對我來說就像是使用Visual State Manager的一個很好的候選人。如果觸發器將會像MouseOver,Pressed等一樣,動畫對於這種效果有點沉重。如果您打算對Button State做出反應,那麼一定要看VSM。

您遇到的問題是您嘗試訪問的目標是模板的一部分,因此不是真正的元素。有意義的是,你不能這樣做:假設你有50個按鈕都應用相同的模板:動畫如何知道你真正意圖使用哪種TasksToggleButtonOuterGlowBitmapEffect?

您可能能夠在觸發器(如果這是WPF)中處理此操作,但我認爲要這樣做,動畫也需要在模板中定義,並且我不知道您是否可以執行此操作那。

您也可以在運行時在代碼後面導航模板樹並在其中設置動畫。

+0

剛看到PanJanek發佈的鏈接:該帖子有答案。我不知道你可以將模板傳遞給動畫,這很酷! – 2009-11-25 16:19:36