xaml - 如何将 png 转换为 xaml DrawingBrush?
问题描述
我有一些 png 文件需要在 WPF (xaml) 应用程序中以矢量格式作为 DrawingBrush 使用。
如何将 png 转换为 xaml DrawingBrush?
解决方案
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>
推荐阅读
- python - Django删除项目用例:好的做法?
- django - 如何制作依赖于另一个模态的主键的“GET”视图
- rest - 缺少父资源时选择哪个 HTTP 代码
- ruby-on-rails - Rails:在迁移中重命名列失败
- javascript - 我怎样才能 ReactDOM.render() 将多个反应元素放入一个节点而不互相杀死?
- java - hashset的打印元素顺序
- python - 使用 python 烧瓶通过 Azure 应用洞察轻松获取异常
- qt - 如何在 macOS high Sierra 中使用 brew 安装 qt 5.9.7?
- google-maps-api-2 - 我可以使用带有角度谷歌地图(Agm)和打字稿的矢量地图吗?
- angularjs - Angular ngUpgrade - 使用 @angular/router 降级模块(用于性能)