Я выяснил, как получить xaml из файла svg (.svg-> Inkscape-> pdf-> ai-> ExpressionDesign-> xaml) ,Есть ли какой-либо чистый способ использования векторных изображений через URL-адрес пакета в WPF/Xaml
Преобразование дает мне словарь ресурсов с помощью DrawingBrush или Xaml File с холстом.
Теперь я ищу чистый способ использования векторного изображения через URL-адрес пакета, поэтому я могу использовать его в чистом виде из моего ViewModel. Это xaml-фрагмент, который прекрасно работает с ImagePath (string), содержащим URL-адрес пакета, в файл (ресурс) .png. Есть ли что-то подобное для векторных изображений?
// View Model:
MainMenuEntry.ImagePath = "pack://application:,,,/MyBeautifulApp.Wpf.MainGui;component/CommonResources/OpenFile16x16.png"
// .Xaml File
<DataTemplate>
<Button Command ="{Binding ClickCommand}" Margin="3,0,0,0">
<Button.Template>
<ControlTemplate>
<Image Source="{Binding ImagePath}" Width="16" Height="16" Stretch="Uniform" VerticalAlignment="Center" />
</ControlTemplate>
</Button.Template>
</Button>
</DataTemplate>
Единственный способ я нашел, что это будет работать вообще было с зывание ImageSource к StaticResource с DrawingBrush (в ResourceDictionary), но это не помогает мне с моделью зрения, где я мог бы имеют либо растровый файл, либо векторное изображение. Должен быть какой-либо разумный способ обработки векторных изображений, например, с помощью svg в html?
Не уверен, что вы подразумеваете под «чистым» способом. То, как я это делаю, - AI -> [XAML Conversion] (http://www.mikeswanson.com/xamlexport/) -> Ресурс. Если это единственный путь, я просто создаю шаблон стиля. Если он несколько, я использую метод [другой шаблон] (http://stackoverflow.com/questions/13292179/best-way-to-use-a-vector-image-in-wpf/13293017#13293017). Затем все это находится в ресурсном словаре и вызывается через StaticResource, будь то из XAML или codebehind, работает как шарм. –
С чистым я подразумевал прямое, как псевдокод "pack: // application: ,,, MyBeautifulApp.Wpf.MainGui; component/CommonResources/OpenFileVectorGraphic.xaml", который я мог бы связывать так же, как и png. Угадайте, что теперь я сделаю класс MenuItemCommand для модели с несколькими свойствами для битовой карты/векторного значка или с помощью свойства объекта и стиля/шаблона, который динамически создает соответствующие элементы в зависимости от типа, возвращаемого этим свойством (строка маршрута pack/xaml). –
Ах, если вы действительно хотите использовать Image.Source, вы можете перенести свой XAML-вектор в ресурс DrawingImage и по-прежнему сможете выполнять ' ' –