21

XAMLでベクターファイル(EPSまたはSVG)を処理するための優れた方法を探しています。IllustratorからXAMLに画像をエクスポートするプラグインを見つけました。ファイルのコンテンツをウィンドウにコピーするとうまく機能します。

しかし、代わりにxaml出力をリソースなどとして使用し、指定されたXAMLウィンドウの例からインポート/変換することは可能ですか?


私が使用しているツール:AdobeIllustratorからXaml

4

3 に答える 3

14

個人的には、xamlパスを毎回再利用/再描画することなく、複数の場所で使用することについて話している場合。次に、それらを次のようなContentControlに配置します。

<!-- Plop this in your resource dictionary or your resource declaration -->
    <Style x:Key="TheAwesomeXAMLimage" TargetType="ContentControl">
            <!-- Add additional Setters Here -->
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ContentControl">

                                <!-- Just Paste your XAML here -->

                </ControlTemplate>
            </Setter.Value>
        </Setter>                      
    </Style>

<!-- Now actually place it on your view -->
    <ContentControl Style="{StaticResource TheAwesomeXAMLimage}"/>
于 2012-11-08T16:15:51.410 に答える
14

このようなラッパーになるように設計されたコンテナーとして、 DrawingImageを使用します。

<MyWindow.Resources>
     <DrawingImage x:Key="diUndo">
         <DrawingImage.Drawing>
             <DrawingGroup>
                 <GeometryDrawing Brush="#FF22BAFD" Geometry="..."/>
             </DrawingGroup>
         </DrawingImage.Drawing>
     </DrawingImage> 
</MyWindow.Resources>

次に、それをそのまま再利用します。

<Image Source="{DynamicResource diUndo}" />

しかし、それは常にその色になります.....


または色を指定する

ベクトルをスタイルにしてから、ターゲットで動的に変更します(静止画像ではなくベクトルですよね?)。次に、使用時に塗りつぶしの色を指​​定します。

 <MyWindow.Resources>
        <Path x:Key="vRedo"
              Data="F1M14.4401,25.5039C15.5755,22.9375 17.1667,20.5703 19.2162,18.5239 23.5781,14.1587 29.3828,11.7539 35.5573,11.7539 41.7344,11.7539 47.5365,14.1587 51.8984,18.5239 56.263,22.8879 58.6667,28.6899 58.6667,34.8645 58.6667,41.0391 56.263,46.8411 51.8984,51.2056 51.2031,51.8997 50.2917,52.2461 49.3828,52.2461 48.474,52.2461 47.5599,51.8997 46.8646,51.2056 45.4818,49.8164 45.4818,47.5664 46.8698,46.177 49.8932,43.1563 51.5573,39.1392 51.5573,34.8645 51.5573,30.5911 49.8932,26.5728 46.8646,23.552 43.849,20.5273 39.8307,18.8645 35.5573,18.8645 31.2813,18.8645 27.2656,20.5273 24.2448,23.552 22.0052,25.7915 20.5182,28.5845 19.8932,31.6184L27.5573,40.1992 5.33334,40.1992 7.10938,17.2969 14.4401,25.5039z" />
        <Style x:Key="ModifiablePathStyle"
               TargetType="{x:Type Path}">
            <Setter Property="Stretch"
                    Value="Uniform" />
            <Setter Property="Data"
                    Value="{Binding Data, Source={StaticResource vRedo}}" />
        </Style>
 </MyWindow.Resources>

その使用法は次のとおりです。

<Path Style="{StaticResource ModifiablePathStyle}" Fill="Blue"/>
<Path Style="{StaticResource ModifiablePathStyle}" Fill="Red"/>
<Path Style="{StaticResource ModifiablePathStyle}" Fill="Green"/>

3つすべての結果は次のとおりです。

ここに画像の説明を入力してください


ベクターアイコンの優れたソース(ダウンロードするXamlカット/ペーストバージョンを含む)は、マテリアルデザインアイコンで見つけることができます。

于 2015-06-15T20:52:19.887 に答える
2

サードパーティのツールの使用に反対していない場合は、SharpVectorsを確認することを検討してください。それはSVGで素晴らしい仕事をしています:解析、XAML変換、表示など。

編集:私はあなたの質問を理解していないかもしれません、あなたはクリスW.の答えでより良いかもしれません;)

于 2012-11-08T15:42:51.027 に答える