各行のオブジェクトタイプなどを示すアイコンを含む、データオブジェクトを行にレンダリングするツリービューを使用するGUIがあります。各行にアイコンファイルを追加すると、読み込みが遅くなり、レンダリングが多くなることに気付いたので、アイコンを図面として書き直すことを考えています。概念実証を1つ行い、次のアイコンを模倣しました
<Border Width="15" Height="15" BorderThickness="0" CornerRadius="4,4,4,4" Background="#22bb22" VerticalAlignment="Center">
<Path StrokeThickness="1.5" Stroke="#FFFFFFFF" Data="M 2,4 C 2,4 10,4 9,12 M 2,7 C 2,7 7,7 6,12 M 2,10.5 L 4,10.5"/>
</Border>
ただし、これを静的リソースとしてXAMLに含める方法がわかりません。この図面を一度ロードして、毎回再描画せずにアプリケーション全体で再利用したいと思います。私は画像で同様のことを行い、リソースディクショナリを作成し、StaticResourceExtensionクラスを使用して、そのディクショナリのキーを介してキャッシュ内の画像を検索し、それを画像タグのソースにバインドしました。例えば
<Image Source="{y:ImageStaticResource {Binding IconString}}" Margin="0,0,0,0"></Image>
ImageStaticResourceは私のカスタムクラスであり、datacontextのIconStringプロパティは、画像の場所の文字列を返す辞書で検索するキーです。これはうまく機能し、非常にうまく機能します。しかし、私はこれらの図面と同様のことをしたいのですが、その方法を完全に理解することはできません。まったく同じことを実行するが、異なるリソースディクショナリをロードする新しい静的リソース拡張機能を作成しました。最初のエントリは次のとおりです。
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Border x:Key="Default" Width="15" Height="15" BorderThickness="0"></Border>
<Border x:Key="..\Resources\Images\AccountOnly.ico" Width="15" Height="15" BorderThickness="0" CornerRadius="4,4,4,4" Background="#22bb22" VerticalAlignment="Center">
<Path StrokeThickness="1.5" Stroke="#FFFFFFFF" Data="M 2,4 C 2,4 10,4 9,12 M 2,7 C 2,7 7,7 6,12 M 2,10.5 L 4,10.5"/>
</Border>
</ResourceDictionary>
だから私はこの境界線のある図面をキーで調べたいと思っています(すべてのアイコンは図面を囲む境界線で表すことができますが、何をすべきか理解できません。誰か提案を提供できますか?