簡體   English   中英

為.net Compact Framework構建自定義繪制控件

[英]Build a custom drawn control for .net compact framework

我剛開始使用.net緊湊框架。 我想在屏幕上繪制一個數獨字段。 因此,我放下一個PictureBox並為Paint事件定義了一個方法:

private void pictureBoxPlayfield_Paint(object sender, PaintEventArgs e)
{
    // use e.Graphics to draw the grid, numbers and cursor
}

這可行,但是您可以在繪制網格時看到。 所以我的問題是,創建這種自定義控件的正確/更好方法是什么? 有沒有可能啟用雙重緩沖的方法?

Compact Framework中沒有對雙緩沖的內置支持。 您可以自己添加它,PictureBox已經支持Image屬性。 在構造函數中創建一個位圖,並將其分配給Image。 您不再需要Paint事件,PictureBox提供的事件已將其繪制到屏幕上。

每當需要更改圖像時,請使用Graphics.FromImage()創建一個Graphics對象,傳遞PB的Image並繪制您的東西。 調用PB的Invalidate()方法以告知它需要重繪圖像。 如果仍然看到閃爍,請重寫PB的OnPaintBackground()方法,而不執行任何操作。

唯一的其他考慮因素是處理調整大小,您需要更大或更小的位圖。 不確定是否需要游戲。

暫無
暫無

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

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