2012-11-20 77 views
0

我使用C#和WPF作爲我的GUI。我的目標是在我從文本框中獲得的進度條中顯示一個字符串。我希望每200毫秒顯示一個字符,這樣可以使字符串動畫完成。如何在WPF中的進度條中顯示字符串,以及如何爲其顯示動畫?如何在進度條控件C中顯示字符串#

+0

您目前正在編寫代碼?有很多不同的方法來做這件事 –

+0

你是怎麼意圖寫你的代碼?即時學生,這是我的老師要求我做的。我不能用文本框改變... – DorZ11

+0

換句話說,你到目前爲止嘗試過什麼?你有沒有寫過的代碼?顯示你的代碼,以便我們可以分析它,並可能有所幫助。 –

回答

0

您是否試過Text屬性?

MSDN

+0

錯誤的ProgressBar。那就是WinForms,這是WPF。 –

0

你可以繼承的ProgressBar,加Text依賴屬性,然後爲它創建一個模板,將使用一個轉換器,將返回基於的Value的子串包括綁定到Text財產一個TextBox 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> 

如果你惹了進度的價值,你會移動的漸變畫筆透明和不透明之間的過渡。

0

訂閱ProgressChanged,但不要使用ProgressBar。只需用新文本更新文本框即可。