首页 > 解决方案 > 如何将 png 转换为 xaml DrawingBrush?

问题描述

我有一些 png 文件需要在 WPF (xaml) 应用程序中以矢量格式作为 DrawingBrush 使用。

如何将 png 转换为 xaml DrawingBrush?

标签: xamlpng

解决方案


PNG 不是矢量图形,您无法通过设置属性来使其成为矢量图形。您可以将其缩放得更小,但如果您尝试将其缩放得更大,您会看到一些伪像。而且你不需要把它放在 aDrawingBrush中来缩放它。

答案是用一个ImageBrush

<Window.Resources>
    <ImageBrush
        x:Key="MyBrush"
        ImageSource="SantaClaus.png" 
        TileMode="Tile" 
        Viewport="0,0,100,100" 
        ViewportUnits="Absolute" 
        Stretch="Fill"
        />
</Window.Resources>

<Grid Background="{StaticResource MyBrush}">
</Grid>

在此处输入图像描述


但是,如果您正在处理设计不佳的只能使用的第三方控件DrawingBrush,您也可以这样做:

    <DrawingBrush 
        x:Key="MyBrush" 
        TileMode="Tile" 
        Viewport="0,0,100,100" 
        ViewportUnits="Absolute" 
        Stretch="Fill"
        >
        <DrawingBrush.Drawing>
            <DrawingGroup>
                <ImageDrawing ImageSource="SantaClaus.png" Rect="0,0,100,100" />
            </DrawingGroup>
        </DrawingBrush.Drawing>
    </DrawingBrush>

推荐阅读