簡體   English   中英

在Winforms中創建疊加控件

[英]Creating Overlay Control in winforms

我正在使用c#winforms顯示圖像。 圖像的顯示是使用用戶控件完成的。 現在,我想為用戶提供畫線,放置其他小圖像,在覆蓋控件上的圖像上寫文本等的功能。 如何提供此功能? 如果我使用另一個用戶控件來顯示帶有透明背面的疊加控件,那行得通嗎? 任何其他解決方案都將受到歡迎。

您可以嘗試使用畫布( Panel )來處理此問題,該畫布處理將圖像繪制為背景,然后再繪制所有注釋/標記。 這將使前景顯得透明。 我希望您可以設置Control.DoubleBuffer來提高性能。

您可能會嘗試設置樣式ControlStyles .AllPaintingInWmPaint。 另外,嘗試覆蓋Control.OnPaintBackground而不執行任何操作,並覆蓋Control.OnPaint並在其中進行所有繪制。

如果性能仍然不能令人滿意,請密切注意PaintEventArgs.ClipRect屬性。 這是您唯一需要繪制的區域。 訣竅是弄清楚您的哪些注釋/疊加層與此矩形相交,並以正確的順序繪制它們。

此畫布或更高級別的控件都需要跟蹤鼠標的移動,以便您知道在何處繪制線條,粘貼圖像等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM