2016-09-23 61 views
0

我試圖製作使用像素藝術風格的遊戲。我創建了我的資產並將它們用作資源,它們作爲System.Controls.Image對象添加到窗口中。使用最近鄰調整大小模式調整System.Controls.Image的大小

在設計師,他們總是變得太小。因此,當我調整它們的大小時,由於將某種雙三次插值應用於它們,它們會變得有些模糊。

我設法通過避免調整大小來避免這種情況;我在設計器中調整大小以找出適合的尺寸,然後使用最近的鄰居調整原始圖像大小(使用外部程序)以使源文件達到該大小。然後,我更新項目中的圖像,並刪除任何調整大小,因此保持原始大小,即無插值。

你可以想象,這是一個相當乏味的過程。我在調整大小期間查看插值選項,但是我可以找到的大多數答案都與System.Drawing.Image相關,而不是System.Controls.Image。我覺得任何這樣的解決方案(如果改編的話)會非常混亂,並涉及多個(也許是不必要的)轉換/演員。

有沒有什麼辦法可以在System.Controls.Image上調整最近鄰居的大小?

回答

1

要設置調整大小模式,您需要爲可視化樹設置RenderOptions.BitmapScalingMode="NearestNeighbor"選項。你可以在窗口級別設置它。

爲了解決更大的問題,似乎什麼導致您的圖像在第一時間進行縮放:

  • 確保您設置的影像控制的Stretch="None"選項,
  • 確保您正在使用SnapsToDeveicePixels或佈局舍入
  • 最後,如果所有其他都失敗,則顯式設置圖像的寬度和高度。

我也遇到了圖像文件的DPI未被設置爲(我相信)90,導致渲染器應用縮放的實例。

+0

謝謝!設置RenderOptions縮放模式允許我在設計者中調整大小,而不會損失清晰度。 – lordnoob