我正在为我的 GUI 使用 C# 和 WPF。我的目标是在我从文本框中获得的进度条中显示一个字符串。我希望每 200 毫秒显示 1 个字符,以便字符串动画完成。如何在 WPF 的进度条中显示字符串以及如何为它的显示设置动画?
问问题
1239 次
3 回答
0
你试过Text
房产吗?
于 2012-11-20T21:22:44.617 回答
0
您可以对 进行子类化ProgressBar
,添加一个Text
依赖属性,然后为其创建一个模板,该模板将包含一个使用转换器绑定到该Text
属性的 TextBox,该转换器将返回一个基于 的子字符串Value
(ProgressBar
或者您可以只在类本身中处理它) .
或者,有多种方法可以通过在文本块上覆盖带有渐变画笔的矩形来伪造它。无论您的背景颜色是什么,画笔都应该从透明变为不透明,并且渐变的位置与进度条的值相关联。
这是一个真正快速而肮脏的伪造示例:
<Grid>
<ProgressBar Name="MyBar" Minimum="0" Maximum="1" Value="0.6">
</ProgressBar>
<Grid>
<TextBlock>Some Text that will be covered depending on the value of the progress bar</TextBlock>
<Rectangle>
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
<GradientStop Offset="0" Color="Transparent"/>
<GradientStop Offset="{Binding ElementName=MyBar, Path=Value}" Color="Transparent"/>
<GradientStop Offset="{Binding ElementName=MyBar, Path=Value}" Color="White"/>
<GradientStop Offset="1" Color="White"/>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
</Grid>
</Grid>
如果您弄乱了 ProgressBar 的值,您将在渐变画笔中移动透明和不透明之间的过渡。
于 2012-11-20T21:26:37.823 回答
0
订阅 ProgressChanged 但不要使用 ProgressBar。只需使用新文本更新 TextBox。
于 2012-11-20T21:38:24.127 回答