2011-10-19 15 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> 

ボタンは、コードによって作成されたスタイルは、ここで適切に

settedされて、私はストーリーボードを開始:

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"]; 

結果はnullです。だから、私は不透明性をrestablishできません

すべてのアイデア?

ありがとうございます。

答えて

0

あなたはこの

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

を試してみました行うことができますが、それはdidn'tはい –

0

は、あなたがそうcurrentButton.Template.FindName("grid", currentButton) as Grid

+0

を働くが、それは仕事をdidn't –

関連する問題