[英]How is the default constructor of System.Drawing.Graphics removed?
當我嘗試創建Graphics的對象時,為什么以下不起作用?
System.Drawing.Graphics graphicsObj = new System.Drawing.Graphics();
(我知道我可以創建一個private System.Windows.Forms.Panel Obj;
如果我希望它可以工作,那么可以創建CreateGraphics()
)
我試圖為Graphics找到一個自定義構造函數,但我找不到一個。 微軟在哪里定義它,或者它是如何阻止它的?
如果沒有其他聲明的構造函數,則默認構造函數僅由C#編譯器創建。 在這種情況下,它看起來像所有構造函數是內部的或私有的。 基本上你不是自己構造一個 - 你從一個圖像,控制或任何東西要求一個,或獲得一個油漆事件等。
很明顯,Graphics不能有默認的構造函數。 你總是希望你畫的東西在某個地方可見。 默認構造函數無法選擇圖形的目標。
獲取Graphics對象的方法:
Graphics.FromImage()
。 你將繪制一個位圖。 調整圖像大小或創建“畫布”時常見。 Control.CreateGraphics()
。 我們直接畫到屏幕上。 總是錯的,而是使用: Graphics.FromHdc()
。 在低級P / Invoke代碼中使用,繪制到Windows的設備上下文。 Graphics.FromHwnd()
。 如上所述,直接繪制到本機窗口。 綜上所述:
FromImage()
繪制到位圖 Microsoft沒有給出Graphics對象構造函數。 創建實例的唯一方法是通過靜態方法,例如CreateGraphics()或FromImage()。 這就是你的代碼不起作用的原因。 另外,作為旁注,不能繼承Graphics對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.