0

我正在为我的 GUI 使用 C# 和 WPF。我的目标是在我从文本框中获得的进度条中显示一个字符串。我希望每 200 毫秒显示 1 个字符,以便字符串动画完成。如何在 WPF 的进度条中显示字符串以及如何为它的显示设置动画?

4

3 回答 3

0

你试过Text房产吗?

MSDN

于 2012-11-20T21:22:44.617 回答
0

您可以对 进行子类化ProgressBar,添加一个Text依赖属性,然后为其创建一个模板,该模板将包含一个使用转换器绑定到该Text属性的 TextBox,该转换器将返回一个基于 的子字符串ValueProgressBar或者您可以只在类本身中处理它) .

或者,有多种方法可以通过在文本块上覆盖带有渐变画笔的矩形来伪造它。无论您的背景颜色是什么,画笔都应该从透明变为不透明,并且渐变的位置与进度条的值相关联。

这是一个真正快速而肮脏的伪造示例:

<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 回答