這對WPF cognoscenti來說可能是一件容易的事,但我想知道是否有一種簡單的方法可以將文本放在WPF ProgressBar上。對我來說,一個空的進度條看起來是裸體的。這是屏幕的房地產,可以攜帶關於什麼正在進行的消息,或者甚至只是添加數字的表示。現在,WPF是關於容器和擴展的,我正在慢慢包裝,但由於我沒有看到「文本」或「內容」屬性,我想我將不得不添加一些東西到我的進度條容器。是否有一種或兩種技術比我原來的WinForms衝動更自然?什麼是最好的,最WPF的自然方式添加文本到進度條?WPF中的ProgressBar上的文本
回答
如果您需要添加可重複使用的方法來添加文本,您可以創建一個新的Style/ControlTemplate,它具有一個額外的TextBlock來顯示文本。您可以劫持TextSearch.Text附加屬性以在進度條上設置文本。
如果不需要重複使用,只需將進度條放入網格中並向網格中添加一個TextBlock即可。由於WPF可以將元素組合在一起,這將很好地工作。
如果需要,可以創建一個UserControl,將ProgressBar和TextBlock公開爲公共屬性,因此它比創建自定義ControlTemplate的工作量要少。
您可以使用Adorner在上面顯示文本。
您將創建一個從裝飾器類繼承的類。重寫OnRender方法以繪製所需的文本。如果您希望可以爲包含要顯示的文本的自定義Adorner創建依賴項屬性。然後使用我提到的鏈接中的示例將此Adorner添加到進度條的裝飾圖層。
無論是在前響應(創建一個新CustomControl
或Adorner
)是更好的做法,但如果你只是想快速和骯髒的(或在視覺上理解如何做到這一點),那麼這個代碼將工作:
<Grid Width="300" Height="50">
<ProgressBar Value="50" />
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">
My Text
</TextBlock>
</Grid>
請記住,z-index是最後列出的項目最多的。
另外,如果您還沒有Kaxaml,請務必選擇它 - 這對於您在嘗試解決問題時玩XAML非常有用。
這是我最初設計的路線,但應該注意的是,在UI設置爲Windows Classic或XP的系統上,進度條會以深藍色顯示,這會使文本無法讀取。 – apc 2015-06-09 12:35:28
這可以是非常簡單的(除非有很多方法可以使它工作)。
您可以使用Style
來完成此操作,或者您只覆蓋TextBlock
和ProgressBar
。
我個人使用這個來顯示等待完成時的進度百分比。
爲了保持它很簡單,我只希望有一個
Binding
只, 所以我附TextBock.Text
到ProgressBar.Value
。
然後,只需複製該代碼來完成它。
<Grid>
<ProgressBar Minimum="0"
Maximum="100"
Value="{Binding InsertBindingHere}"
Name="pbStatus" />
<TextBlock Text="{Binding ElementName=pbStatus, Path=Value, StringFormat={}{0:0}%}"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
<Grid/>
這裏是如何,這可能是這樣的:
退房WPF Tutorial爲完整的職位。
右鍵單擊ProgressBar
,然後單擊編輯模板>編輯副本。
然後將TextBlock
放置在由VS生成的樣式中的Grid
的結束標記的正上方。
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="2"/>
<TextBlock Background="Transparent" Text="work in progress" Foreground="Black" TextAlignment="Center"/>
</Grid>
<ControlTemplate.Triggers>
- 1. WPF中的平滑ProgressBar
- 2. WPF progressbar style
- 3. 在WPF中的TabItem頭中嵌入ProgressBar
- 4. 如何更改WPF中ProgressBar的前景?
- 5. 如何使用WPF中的progressBar
- 6. WPF ProgressBar不更新?
- 7. WPF ProgressBar寬度不能調整爲文本
- 8. 每頁上的ProgressBar
- 9. 橢圓ProgressBar緊縮文本
- 10. WPF ProgressBar顯示問題
- 11. WPF忽略ProgressBar樣式
- 12. 用於Webservice調用的WPF ProgressBar
- 13. C++ Builder的TForm2上的ProgressBar
- 14. WPF文本框中的模糊文本
- 15. TreeViewItem中的ProgressBar
- 16. wpf中的可選文本
- 17. 如何在Android中刪除progressBar中的文本?
- 18. 白色背景上的ProgressBar
- 19. XP上的模糊文本WPF
- 20. Windows7上的WPF文本框邊框
- 21. asynctask中的ProgressBar沒有顯示上傳
- 22. WPF:本地化WPF功能區QAT上下文菜單文本
- 23. WPF中的上下文文本編輯器
- 24. vb.net 2005中的ProgressBar
- 25. CLI中的Python ProgressBar
- 26. 使用Django中的Progressbar進行文件上傳
- 27. 在WPF中執行每個任務後更改ProgressBar的值?
- 28. 將文本插入WPF文本框中的舊文本之前
- 29. 使用backgroundworker更新progressbar + clipboard.getimage() - WPF C#
- 30. WPF測量文本框內的文本
你可以去這個 - [WPF的進度條動態文本和文本顏色更新](http://stackoverflow.com/questions/5167867/wpf-progress-bar-with-dynamic-text-text -color-update) – Rohit 2011-03-06 04:05:36