0

GUIにC#とWPFを使用しています。私の目標は、テキストボックスから取得したプログレスバーに文字列を表示することです。200msごとに1文字を表示したいので、文字列は完全にアニメーション化されます。WPFの進行状況バーに文字列を表示するにはどうすればよいですか?また、その表示をアニメーション化するにはどうすればよいですか?

4

3 に答える 3

0

ProgressChanged をサブスクライブしますが、ProgressBar は使用しないでください。TextBox を新しいテキストで更新するだけです。

于 2012-11-20T21:38:24.127 に答える
0

Textプロパティを試しましたか?

MSDN

于 2012-11-20T21:22:44.617 に答える
0

をサブクラス化し、依存関係プロパティをProgressBar追加してから、に基づいて部分文字列を返すコンバーターを使用しTextて、プロパティにバインドされた TextBox を含むテンプレートを作成することができます (または、クラス自体で処理することもできます)。 .TextValueProgressBar

または、テキストブロックの上にグラデーション ブラシで四角形を重ねることで、さまざまな方法で偽装することができます。背景色が何であれ、ブラシは透明から不透明に変化する必要があり、グラデーションの位置は進行状況バーの値に関連付けられています。

これは、それを偽造するための本当に簡単で汚い例です。

<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 に答える