任何 Web、桌面或移動開發人員都經常使用影像。你可以從 C#、HTML、XAML、CSS、C++、VB、TypeScript 甚至程式碼註釋中引用它們。有些影像是本地的,有些存在於線上或網路共享中,而其他影像可能僅以 base64 編碼字串的形式存在。我們在程式碼中以多種方式引用它們,但總是作為字串值,不能顯示影像的樣子。直到現在。
當游標懸停時,預覽影像的功能請求最近得到了很多關注,所以我們決定研究一下。不同的編輯器已經存在各種各樣的影像預覽器,但它們的工作方式都略有不同。如果我們要構建它,我們必須以一種對 Visual Studio 來說原生和自然的方式來做。因此,我們發起了一個社群實驗來解決這個問題。
結果是程式碼編輯器中的編輯器 tooltip。該 tooltip 以原始大小顯示影像,但寬度和高度上限為500畫素。在預覽圖的下面,你會看到畫素大小和位元組大小。
實驗參與者對這一功能非常興奮。以下是他們中的一些人的留言:
我們確定了一些需要回答的重要問題:
- 必須支援哪些影像檔案型別?
- 哪些影像引用語法和格式最常用?
- 哪些附加功能可能很重要?
這個實驗幫助我們回答了這些問題。我們來複習一下。
支援的檔案型別
實驗參與者最常用的影像檔案有(按順序排列):
- PNG – 53%
- JPG – 21%
- SVG – 15%
- ICO – 4%
- WebP – 4%
- GIF – 2%
- 其他檔案型別,如 BMP, TIFF, DDS
WPF 唯一不直接支援的格式是 SVG,因此我們必須將其轉換為 WPF 可以呈現的點陣圖格式。這就是為什麼 SVG 支援沒有進入第一個版本,但我們希望能儘快準備好。
引用語法
有多種方法可以引用影像,主要取決於語言和應用程式模型。我們從實驗中看到的最常見的是:
- 相對 URL (./, ../, /)
- 檔案路徑 (c:\, c:/, \, /)
- 資料 URI (data:image/png;base64,…)
- 包 URI (pack://application:,,,/Images/MyImage.png)
- 影像暱稱 (KnownMonikers.StatusWarning)
附加功能
除了簡單地顯示影像預覽外,社群還提出了兩個功能。
縮放是一個很酷的功能,在未來的更新中可以進一步研究。然而,目前還不在討論範圍之內。
另一個想法是,使用者應該能夠單擊預覽影像,使其在預設的影像檢視器應用程式中開啟。這個功能很簡單,所以我們就增加了。
這就是影像懸停預覽功能如何進入 Visual Studio 的故事。要自己嘗試,請安裝最新版本的 Visual Studio 2022 (v17.10或更新版本)並嘗試一下。
原文連結:https://devblogs.microsoft.com/visualstudio/making-visual-studio-a-bit-more-visual/