2011-10-19 83 views
0

我有一個在xaml中定義的按鈕風格,裏面有一個故事板,還有一個網格。故事板將網格的不透明度設置爲0.1。問題是如何通過代碼來恢復它。我想我可以訪問網格並將不透明度設置爲1,但我找不到通過c#獲取網格的方法。wpf找到風格內的內部網格

下面是代碼:

XAML:

<Style x:Key="BevelWLButton" TargetType="{x:Type Button}"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type Button}" x:Name="bbtemplate"> 
        <ControlTemplate.Resources> 
         <Storyboard x:Key="FadeOut" > 
          <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="grid"> 
           <EasingDoubleKeyFrame KeyTime="0" Value="1"/> 
           <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="0.05"/> 
          </DoubleAnimationUsingKeyFrames> 
         </Storyboard> 

        </ControlTemplate.Resources> 
        <Grid x:Name="grid"> 
         -------------- up is the grid i find 
    </Style> 

按鈕由代碼中創建和風格是否正確設置好的

在這裏,我開始故事板:

var story = btn.Template.Resources["FadeOut"] as Storyboard; 
       if (story != null) 
       { 
        story = story.Clone(); 
        story.Begin(btn,btn.Template); 
       } 

但是當我嘗試

currentButton.Resources["grid"]; or currentButton.Template.Resources["grid"]; 

結果爲空。所以,我不能重建不透明度

任何想法?

在此先感謝。

回答

0

你可以做到這一點

Grid gridInTemplate = (Grid)currentButton.Template.FindName("grid", currentButton); 
+0

肯定的,但它didn't工作 –

0

你嘗試currentButton.Template.FindName("grid", currentButton) as Grid

+0

肯定的,但它didn't工作 –