[英]How to Display a String in a Progress Bar Control C#
我在GUI中使用C#和WPF。 我的目標是在從文本框中獲取的進度欄中顯示一個字符串。 我希望每200ms顯示1個字符,因此該字符串將自動完成動畫。 如何在WPF的進度欄中顯示字符串,以及如何對其顯示進行動畫處理?
您是否嘗試過Text
屬性?
您可以將ProgressBar
子類化,添加Text
依賴項屬性,然后為其創建一個模板,該模板將使用轉換器將綁定到Text
屬性的TextBox包含在內,該轉換器將基於ProgressBar
的Value
返回一個子字符串(或者您可以處理它在課程本身中)。
另外,您可以通過多種方式偽造它,方法是在文本塊上用漸變筆刷覆蓋矩形。 無論背景顏色是什么,畫筆都應從透明變為不透明,並且漸變的位置與進度條的值相關。
這是一個偽造的真實而又骯臟的例子:
<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的值,則將在漸變畫筆中的透明和不透明之間移動過渡。
訂閱ProgressChanged,但不要使用ProgressBar。 只需使用新文本更新TextBox。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.