我正在尝试将新控件淡入应用程序的“应用程序”区域,该区域是在删除现有控件后以编程方式添加的。我的代码如下所示:
void settingsButton_Clicked(object sender, EventArgs e)
{
ContentCanvas.Children.Clear();
// Fade in settings panel
NameScope.SetNameScope(this, new NameScope());
SettingsPane s = new SettingsPane();
s.Name = "settingsPane";
this.RegisterName(s.Name, s);
this.Resources.Add(s.Name, s);
Storyboard sb = new Storyboard();
DoubleAnimation settingsFade = new DoubleAnimation();
settingsFade.From = 0;
settingsFade.To = 1;
settingsFade.Duration = new Duration(TimeSpan.FromSeconds(0.33));
settingsFade.RepeatBehavior = new RepeatBehavior(1);
Storyboard.SetTargetName(settingsFade, s.Name);
Storyboard.SetTargetProperty(settingsFade, new PropertyPath(UserControl.OpacityProperty));
ContentCanvas.Children.Add(s);
sb.Children.Add(settingsFade);
sb.Begin();
}
但是,当我运行此代码时,我收到错误“不存在可解析名称“settingsPane”的适用名称范围。”
我可能做错了什么?我很确定我已经正确注册了所有内容:(
最佳答案
我不会为 NameScopes 等而烦恼,而宁愿使用 Storyboard.SetTarget 来代替。
var b = new Button() { Content = "abcd" };
stack.Children.Add(b);
var fade = new DoubleAnimation()
{
From = 0,
To = 1,
Duration = TimeSpan.FromSeconds(5),
};
Storyboard.SetTarget(fade, b);
Storyboard.SetTargetProperty(fade, new PropertyPath(Button.OpacityProperty));
var sb = new Storyboard();
sb.Children.Add(fade);
sb.Begin();
关于wpf - 在以编程方式添加的控件上使用 Storyboard 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/695782/