我正在挖掘用C#編寫的WPF應用程序。
我需要繪製一個選擇矩形,就像我們用來選擇多個項目(如文件夾中的文件)一樣。
我有幾個對象,其類型爲System.Windows.Controls.Control,System.Windows.Controls.ContentControl和System.Windows.FrameworkElement。
我認爲,我需要重寫像onPaint,onDraw或reDraw/rePaint的事件。
我可以使用這些對象繪製矩形,以及如何?如何在System.Windows.Controls。*上查找繪圖?
0
A
回答
0
WPF和WinForms完全不同於這方面。在WinForms中,您可以覆蓋OnPaint
以通過在事件處理程序中使用Graphics
對象直接繪製任何東西。
在WPF中,有一個OnRender
方法,它似乎表現得類似於如OnPaint中:
protected override void OnRender(DrawingContext dc)
{
SolidColorBrush mySolidColorBrush = new SolidColorBrush();
mySolidColorBrush.Color = Colors.LimeGreen;
Pen myPen = new Pen(Brushes.Blue, 10);
Rect myRect = new Rect(0, 0, 500, 500);
dc.DrawRectangle(mySolidColorBrush, myPen, myRect);
}
然而,在每WPF視覺元素是一個對象,則不能直接繪製什麼。實際上DrawingContext
的「繪圖」方法實際上只是將對象插入到可視化樹中,隨後將與其他元素一起渲染。
使用OnRender
通常不是最好的主意,它有一個really bad performance比較快速Graphics
操作。在WPF中,最好使用自定義控件或模板。
相關問題
- 1. 如何在PDF中查找圖像並在其上繪製另一個圖像
- 2. DataGridHeaderBorder在System.Windows.Controls
- 3. 如何在TTrayIcon上繪圖
- 4. 如何在Gtk.Image上繪圖?
- 5. 如何在TPanel上繪圖
- 6. 如何在地圖上查找基於圓形繪製的縮放級別
- 7. 如何在圖像上繪製圖像?
- 8. 在Bing地圖上繪製區域內查找東西
- 9. 如何在matplotlib中的另一個繪圖上添加繪圖?
- 10. 如何在柱狀圖上繪製KDE
- 11. 如何在SoaML圖上繪製ESB?
- 12. 如何在R Markdown上顯示繪圖?
- 13. 如何在surfaceview上繪製圖像android
- 14. Android - 如何在視圖上繪製
- 15. 如何在圖片上繪製文字?
- 16. 如何在matplotlib上繪製圖例?
- 17. 如何在matplotlib上繪製框架圖
- 18. 如何在底圖上繪製矩形
- 19. 如何在Plots.jl上繪製圖像?
- 20. Android - 如何在SurfaceView上繪製圖形
- 21. 如何在Bing地圖上繪製shapefile
- 22. 如何在地圖上繪製路線?
- 23. 如何在圖形上繪製JMenuBar
- 24. android如何在地圖上繪製cricle
- 25. 如何在ggvis上繪製圖例
- 26. 我如何在richTextBox1上繪圖?
- 27. 如何在GradientDrawable上繪製位圖?
- 28. 如何在一切上繪製視圖?
- 29. 如何在Android上繪製條形圖
- 30. 如何使用JOgl在jPanel上繪圖
請告訴我要添加什麼信息,我會這樣做。 –
您沒有WinForms應用程序,您有一個WPF應用程序。這兩件事情**不是**相同...... –
好的。我將學習如何首先繪製WPF,然後再回來。 –