2010-08-04 110 views
2

我和我的隊友正在討論將我們項目使用的圖標轉換爲XAML的相對優點。 Blend有一個「導入」選項,我們可以使用它將一些項目中的圖像資源自動轉換爲XAML Path元素。XAML項目(Silverlight/WPF)圖片或轉換後的XAML路徑

一方面,通過生產XAML,組件將保持較小。另一方面,僅僅有一個圖像參考是簡單的。另一個我認爲有缺陷的觀點(糾正我,如果我錯了)是我們需要「縮小」我們的XAML,包括< Image Source =「...」與< Path Data =「...」 「這將包括更多的文字。

什麼是其他經驗,有沒有一種方法是絕對「正確的」。

回答

2

你可以把你的XAML圖紙放入資源庫,然後引用它們。這會產生很小的程序集,你可以簡單地添加一個繪圖引用,然後完全「縮小」XAML。與您的第一種方法相比,不需要額外的按鍵操作。

某處在你的項目,你有一個包含繪圖ResourceDictionary中:

<DrawingImage x:Key="image1"> 
    <DrawingImage.Drawing> 
     <GeometryDrawing> 
      <GeometryDrawing.Geometry> 
       <GeometryGroup> 
        <EllipseGeometry Center="50,50" RadiusX="45" RadiusY="20" /> 
        <EllipseGeometry Center="50,50" RadiusX="20" RadiusY="45" /> 
       </GeometryGroup> 
      </GeometryDrawing.Geometry> 
      <GeometryDrawing.Brush> 
       <LinearGradientBrush> 
        <GradientStop Offset="0.0" Color="Blue" /> 
        <GradientStop Offset="1.0" Color="#CCCCFF" /> 
       </LinearGradientBrush> 
      </GeometryDrawing.Brush> 
      <GeometryDrawing.Pen> 
       <Pen Thickness="10" Brush="Black" /> 
      </GeometryDrawing.Pen> 
     </GeometryDrawing> 
    </DrawingImage.Drawing> 
</DrawingImage> 

這不會佔用的是,根據大小你會添加到您的程序集作爲資源的位圖更多的空間和位圖機會的複雜性在於,您可以使用xaml節省空間。

然後在你的代碼中你引用這張圖就是你引用你的位圖。沒有區別:

<Image Source="{StaticResource image1}" /> 

您可以使用Microsoft Expression Design自動矢量化點陣圖(「對象 - >圖像 - >自動跟蹤位圖」),並將其導出爲XAML圖紙。它會創建一個DrawingBrush。但你可以放心地用DrawingImage替換它。