0

我对 XAML 和 Blend 有一点问题。我们已将公司徽标从 转换AI -> SVG -> 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

注意RenderTransform="1,0,0,-1,0,200"封闭的节点Canvas。它将画布上下翻转并将其降低 200 以调整到根画布位置。鉴于 taht 徽标在渲染时看起来不错意味着 xaml 中的所有图形元素实际上都是颠倒的 :)。也许它是一个人工智能的东西,我不知道。

问题是我现在使用 Blend 将此画布转换为 GraphicBrush。混合省略了变换,并且在应用画笔时徽标看起来是颠倒的。而不是再次在每个画笔接收者处进行转换,我在想也许我们应该只在根处修复它,例如转换所有路径,以便它们正确渲染以开始避免对根转换的需要。

问题:是否有程序化(或任何其他方式)可以做到这一点?意思是,我可以渲染这个画布,然后将渲染的(在应用了所有转换之后)DOM 序列化为 XAML 吗?

或者为了让问题更清楚:每条路径都应用了两个变换(如上所示,每条路径一个全局翻转和一个局部移位),我能否以某种方式将这些变换应用于每个路径/它的点,以便路径在没有它们的情况下呈现.

4

1 回答 1

1

您可以使用Microsoft 表达式套件中表达式设计中内置的导出到 XAML 功能。

或者我个人通常使用 Mike Swanson 的AI 到 XAML 转换器,因为我通常已经在 Illustrator 中工作以处理更复杂的矢量图形。

两者都会提供比您使用的转换器更好的结果。不确定原始转换在哪里使用 RenderTransforms 等变得如此古怪,但正如您所发现的,从一开始就进行良好的转换会有所帮助,然后再经历修复坏转换的麻烦哈哈。

干杯!

于 2012-10-17T14:25:10.373 回答