Dot-Net
Graphics.Save 與 Graphics.BeginContainer
有什麼
Graphics.Save不同Graphics.BeginContainer?
看看這裡:
該文件沒有區分對 BeginContainer/EndContainer 的呼叫和對 Graphics.Save 和 GraphicsRestore 的呼叫。此外,文件中存在一些錯誤。
$$ e.g., GraphicsState is incorrectly asserted to be used by BeginContainer $$ 在我的使用中,BeginContainer/EndContainer 似乎可以保存和恢復目前的轉換。它實際上並沒有像文件所斷言的那樣保存剪輯區域,並且它可能不會保存圖形對像中的任何其他屬性。
通過保存/恢復,我實際上能夠保存/恢復剪輯區域、目前變換和其他設置。它似乎比容器功能更“完整”,如果不完整的話。因此,我懷疑這兩種不同方法的性能/完整性權衡。
我還懷疑文件是否正確地說明 GraphicsState 對象(由 Save 使用)儲存在堆棧中,就像 GraphicsContainer 對象(由 BeginContainer 使用)一樣。我懷疑 GraphicsState 甚至可能不會放在堆棧上,但我沒有測試過這個假設。