Лучший способ использовать векторное изображение в WPF?

Я ищу хороший способ добавить векторный файл (EPS или SVG) в XAML. Я нашел плагин, который экспортирует изображение из Illustrator в файл XAML,скажем, MyImage.xaml, и он будет работать хорошо, если я скопирую содержимое файла в свой файл XAML для своего окна (ссылка на плагин:http://www.mikeswanson.com/XAMLExport/).

Однако я уверен, что лучшие способы существуют. Можно ли, например, использовать MyImage.xaml в качестве ресурса или чего-то другого и импортировать его в XAML, который описывает окно?

 Clemens08 нояб. 2012 г., 16:43
Вы смотрели наXamlReader?
 Clemens08 нояб. 2012 г., 16:46
И читайте о том, как справитьсяРесурсы XAML.

Ответы на вопрос(3)

Решение Вопроса

если вымы говорим об использовании его в нескольких местах без необходимости повторного использования / повторного рисования ваших путей 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}">
</contentcontrol>
 Chris W.08 нояб. 2012 г., 17:38
Объясните. Не уверен, что вы имеете в виду.
 Sisyphe08 нояб. 2012 г., 17:41
Ну, ты неиспользовать право собственности Content? Так не хватит ли Control, когда вы просто используете ControlTemplate? :)
 Chris W.08 нояб. 2012 г., 17:53
ContentControl фактически наследует от Control, он просто добавляет свойство содержимого с совместимостью для любого типа объекта CLR. До тех пор, пока управление не вызывает повторного рисования фигур и выполнения той же цели без других требований, контроль также работает.
 Chris W.09 нояб. 2012 г., 15:44
Нет проблем, рад, что вы решили свою дилемму. :)
 user172141309 нояб. 2012 г., 10:17
Работает отлично, именно то, что я искал. Спасибо !
 Sisyphe08 нояб. 2012 г., 17:27
Ницца ! но почему вы используете ContentControl вместо простого элемента управления?

DrawingImage, как твойконтейнер который предназначен для такой обертки:

<mywindow.resources>
     <drawingimage x:key="diUndo">
         <drawingimage.drawing>
             <drawinggroup>
                 <geometrydrawing brush="#FF22BAFD" geometry="...">
             </geometrydrawing></drawinggroup>
         </drawingimage.drawing>
     </drawingimage> 
</mywindow.resources>

Затем используйте его как таковой:

<img 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>
 </path></mywindow.resources>

Вот его использование:

<path style="{StaticResource ModifiablePathStyle}" fill="Blue">
<path style="{StaticResource ModifiablePathStyle}" fill="Red">
<path style="{StaticResource ModifiablePathStyle}" fill="Green">
</path></path></path>

Вот результат всех трех:

обратите внимание наSharpVectors, Это'отлично работает с SVG: анализ, преобразование XAML, отображение и т. д.

Редактировать: Возможно, я не понял ваш вопрос, возможно, вам будет лучше с Крисом В. ответить;)

Ваш ответ на вопрос