Wpf 使用DrawingContext绘制Viewbox

Wpf 使用DrawingContext绘制Viewbox,wpf,xaml,icons,viewbox,Wpf,Xaml,Icons,Viewbox,我正在写一个WPF应用程序。我使用的所有图标都是矢量,并以一系列视图框的形式存储在独立的ResourceDictionary: <ResourceDictionary> <ViewBox x:Shared="False" x:Key="IconKey" Stretch="Uniform"> <Canvas Width="16" Height="16"> <Path ... /> <

我正在写一个WPF应用程序。我使用的所有图标都是矢量,并以一系列视图框的形式存储在独立的
ResourceDictionary

<ResourceDictionary>
    <ViewBox x:Shared="False" x:Key="IconKey" Stretch="Uniform">
        <Canvas Width="16" Height="16">
            <Path ... />
        </Canvas>
    </ViewBox>

    <!-- ... -->
</ResourceDictionary>

我现在正在实现一个用户控件,由于非常具体的需求,它是我在OnRender方法中从头开始绘制的


我需要在我的控件上呈现这些图标。一种解决方案是将它们栅格化,然后绘制位图,但问题是,我的控件中的视图可以自由缩放,这样的图标在放大时看起来很难看(与矢量图标相反)。有没有一种方法可以使用
DrawingContext
渲染
ViewBox

我不知道如何渲染
ViewBox
,但是可以渲染
几何体,缩放时不会难看

我在XAML文件中创建了一个图标。构建操作:第页

文件:
Icon.xaml

<?xml version="1.0" encoding="UTF-8"?>
<Viewbox xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Stretch="Uniform">
    <Canvas Width="25" Height="25">
        <Path Fill="#FF000000" StrokeThickness="0.4">
            <Path.Data>
                <PathGeometry Figures="M 4.9586532 4.4020592 12.198751 19.198359 V 0.91721594 H 20.200561 h 2.894515  Z" FillRule="Nonzero"/>
            </Path.Data>
        </Path>
    </Canvas>
</Viewbox>

如果它们已经是矢量,为什么还需要一个viewbox?通过这种方式将它们嵌入到其他不同的控件中更简单。你找到方法了吗?