我有一个在xaml中定义的按钮样式,里面有一个故事板,还有一个网格。故事板将网格的不透明度设置为0.1。问题是如何通过代码恢复它。我想我可以访问网格并将不透明度设置为1但我找不到通过c#获取网格的方法。
以下是代码:
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"];
结果为null。所以,我无法重建不透明度
任何想法?
提前致谢。
答案 0 :(得分:0)
你可以这样做
Grid gridInTemplate = (Grid)currentButton.Template.FindName("grid", currentButton);
答案 1 :(得分:0)
您是否尝试过currentButton.Template.FindName("grid", currentButton) as Grid