2012-10-16 45 views
0

我對XAML和Blend有一些問題。我們已經將AI -> SVG -> XAML的公司標誌轉換成了公司標誌,並對它進行了一些清理,併產生了一個非常特殊的來源。它在本質上是把一個「翻轉」轉型的路徑的集合:將變換應用到源xaml

<Canvas Width="640" Height="200" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 

    <Canvas Width="640" Height="200" RenderTransform="1,0,0,-1,0,200" > 

     <!-- L --> 
     <Canvas RenderTransform="1,0,0,1,317.0645,64.3652"> 
      <Path> 
       <Path.Data> 
        <PathGeometry FillRule="Nonzero" Figures="M0,0L0,75.065 18.743,76.83 18.743,17.066 43.553,17.066 38.564,0 0,0z" /> 
       </Path.Data> 
      </Path> 
     </Canvas> 
     ... etc 

注意,在封閉CanvasRenderTransform="1,0,0,-1,0,200"節點。它顛倒畫布並將其向下降低200以適應根畫布位置。鑑於標誌看起來確定呈現意味着在xaml中的所有圖形元素實際上是顛倒的:)。也許它是一個人工智能的東西,我不知道。

問題是我現在使用Blend將此畫布轉換爲GraphicBrush。混合時省略了變換,並且在應用筆刷時,徽標看起來向上。而是在每個刷子接收者處再次進行轉換,我認爲也許我們應該在根上修復它,轉換所有路徑,以便它們正確渲染以避免需要根變換。

問題:是否有程序化(或任何其他方式)來做到這一點?這意味着,我可以渲染此畫布,然後將渲染(應用於所有轉換後)DOM序列化爲XAML?

或者爲了使問題更清楚:每個路徑有兩個變換(如上所示,每個路徑有一個全局翻轉和一個局部變換),我可以以某種方式將這些變換應用於每個路徑/路徑渲染沒有他們。

+0

似乎最簡單的解決方案就是使用像Photoshop這樣的應用程序將原始圖形轉換爲基於矢量的圖形。 –

+0

它是.AI中的一個矢量嗎?爲什麼不使用.AI - > XAML轉換器?你可能會發現它會更清潔。 http://www.mikeswanson.com/xamlexport/ –

+0

不,原來的.ai是一個在Illustrator中製作的矢量,所以不需要混淆位圖。這是該公司從設計師那裏購買的品牌包的一部分。不幸的是,我們沒有擁有Illustrator許可證(盜版不是一種選擇),所以我發現唯一的免費軟件轉換路徑是通過svg。 – mmix

回答

1

您可以使用Microsoft Expression Suite中內置的表達式設計中的導出到XAML功能。

或者我個人通常使用Mike Swanson的AI to XAML converter,因爲我通常已經在Illustrator中使用更復雜的矢量圖形。

兩者都會提供比您使用的轉換器更好的結果。不知道原始轉換對於RenderTransforms等變得如此古怪,但正如您發現的那樣,它有助於進行良好的轉換,然後開始修復壞的哈哈。

乾杯!