2011-03-25 50 views
2

我知道它建議將圖像轉換爲XAML,因爲它們在更改dpi時會變得模糊不清。WPF:使用.ico文件作爲工具欄的圖像?還是需要轉換爲xaml?推薦的?

什麼標準ICO文件實際上是真正的BMP文件?

我需要在工具欄中使用它們。我是否需要將所有轉換爲xaml?

如果還有更好的方法?

什麼關於HTML類似的功能,稱爲其中的1幅大的圖像,但你得到通過志願服務崗位的項目精靈?

任何意見非常讚賞

+0

我一直有最好的運氣從.ico文件中提取分辨率圖標(請記住,.ico文件可以在一個文件中有多個分辨率),並將其轉換爲像.png或.gif格式的文件。 – RQDQ 2011-03-25 14:30:37

+0

Windows .ico文件不是.bmp文件。它們包含多個圖像,蒙版,尺寸目錄,顏色深度等。 – 2011-03-25 15:07:41

回答

2

Essencially你用靜態圖像的工作不需要縮放時,你用矢量圖像時要執行的各種比例的工作。這是大多數WPF和Silverlight應用程序的經驗法則。

但是你無法直接將靜態圖像轉換爲矢量圖像(你叫什麼XAML),大多數時候,它會要求設計師做的矢量圖像一些工作。

與矢量圖像工作使得渲染過程重,多個載體,所述渲染通道越慢。當你將其添加到已經在屏幕上的東西時,它也會讓實例化一個特定的可視化樹變得更慢。如果您調用RenderToBitmap並緩存要使用的矢量圖像的大小,則可以克服此問題,但這需要附加的自定義代碼。

與靜態圖像工作允許更快的渲染。但是,大型化會導致像素化和尺寸縮小,可能會在圖像上產生僞像。當你使用靜態圖像時,PNG被認爲是首選格式,你可以完全控制壓縮,你有alpha鍵,它是一個索引格式,這使得它的尺寸相當小。

+0

感謝David!所以,經驗法則......我怎麼知道它的規模?舉一個例子..我想在用戶名/密碼文本框的左側放置一個登錄屏幕,一張關於LOCK/KEY的48x48的圖片。如果DPI增加,這是否會擴大規模?如果dpi增加,我認爲一切都會縮放。 – Martin 2011-03-25 21:01:34

+0

抱歉,延遲響應。理想情況下,您希望一切都是WPF/Silverlight中的向量。如果您想要一個已經轉換爲XAML Usercontrols的好圖標庫,您可以戳我。如果遇到性能問題,並且主要來自構建頁面,則開始將自定義代碼編寫到RenderBitmap並緩存您展示內容的本地預渲染版本。 – 2011-04-20 14:02:04

0

我總是所有圖像轉換爲XAML它是可能的。我認爲這是很好的規則。