所以我玩了一点C# WPF动画。我需要帮助我知道如何动画的价值观,如颜色,宽度,位置等。
但是我不明白如何改变动画中的内容。我想在聚焦文本框时淡出文本框内容。我找不到故事板。setTargetProperty(changeContent?)的文本内容。
这里我的代码thsi动画宽度:
private void onGotFocusLoginID(Object sender, EventArgs e) {
if(txtLoginID.Text.Equals("deineMail@mail.de")) {
DoubleAnimation doubleAnimation = new DoubleAnimation();
doubleAnimation.Duration = new Duration(new TimeSpan(0, 0, 0, 3, 0));
Storyboard storyBoard = new Storyboard();
storyBoard.Children.Add(doubleAnimation);
Storyboard.SetTarget(doubleAnimation, txtLoginID);
Storyboard.SetTargetProperty(doubleAnimation, new PropertyPath(FrameworkElement.WidthProperty));
doubleAnimation.To = 500;
storyBoard.Begin();
txtLoginID.Text = "";
}
}
我试着将前景色改为透明,但文本仍然存在。
我也尝试了它与标签之前的文本框,它的工作很好,但我不能点击通过标签。你知道吗?
1条答案
按热度按时间vwhgwdsa1#
要淡出
TextBox.Text
,您应该设置TextBox.Foreground
笔刷的Brush.Opacity
属性的动画。如果您的目标是创建水印
TextBox
,当TextBox
接收键盘焦点时占位符消失,则应覆盖TextBox
的ControlTemplate
。只需在文本主机(模板内部)上覆盖一个
TextBlock
,它包含占位符文本。然后为TextBlock.Opacity
属性设置动画以获得淡入/淡出效果: