svgファイル(.svg-> Inkscape-> pdf-> ai-> ExpressionDesign-> xaml)からxamlを取得する方法を知りました。 。WPF/XamlのパックURL経由でベクトル画像を使用するきれいな方法はありますか
変換すると、DrawingBrushを持つリソースディクショナリまたはキャンバスを持つXamlファイルが得られます。
私はViewModelからきれいな方法でそれを使用できるように、パックURL経由でベクトル画像を使用するクリーンな方法を探しています。これは、(リソース).pngファイルへのパックURLを含むImagePath(文字列)でうまく動作するxamlフラグメントです。ベクトル画像には何か類似点はありますか?
// 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>
私はそれがすべてで仕事を見つけた唯一の方法は、(のResourceDictionary内)DrawingBrushとStaticResourceにImageSourceはの結合していましたが、どこ私は可能性があることは、ビューモデルで私を助けていません。ビットマップファイルまたはベクトル画像のいずれかを持ちます。 htmlのsvgのようなベクトル画像を扱うには、何の意味もありません。
「クリーン」という言葉が何であるかわかりません。私がやる方法はAI - > [XAML変換](http://www.mikeswanson.com/xamlexport/) - >リソースです。それが単一のパスならば、私はそれをスタイルテンプレートにします。複数の場合は、[別のテンプレート](http://stackoverflow.com/questions/13292179/best-way-to-use-a-vector-image-in-wpf/13293017#13293017)メソッドを使用します。次に、すべてがリソース辞書に格納され、XAMLかコードビハインドかにかかわらず、StaticResource経由で呼び出され、魅力的に機能します。 –
クリーンなiは、pngのようにバインドできるpseudo code "pack:// application:,,,/MyBeautifulApp.Wpf.MainGui; component/CommonResources/OpenFileVectorGraphic.xaml"のような単純な意味です。今度は、ビットマップ/ベクターアイコンの複数のプロパティ、またはプロパティによって返されるタイプに応じて適切なアイテムを動的に作成するスタイル/テンプレートを持つviewmodelのMenuItemCommandクラスを作成します(packpath string/xamlグラフ)。 –
ああ、本当にImage.Sourceを使用したい場合は、XAML VectorをDrawingImageリソースに移植して、 ' ' –