当前位置:网站首页>win10 uwp 使用 Geometry resources 在 xaml
win10 uwp 使用 Geometry resources 在 xaml
2022-08-04 18:36:00 【林德熙】
经常会遇到在 xaml 使用矢量图,对于 svg 的矢量图,一般都可以拿出来写在 Path 的 Data ,所以可以写为资源,但是写出来的是字符串,如何绑定 Geometry 到字符串资源?
假如在资源写一个图片,看起来就是下面的代码
<Page.Resources>
<x:String x:Key="HomeIconGeometry">F1 M 24.0033,56.0078L 24.0033,38.0053L 22.0031,40.0056L 19.0027,35.0049L 38.0053,20.0028L 45.0063,25.5299L 45.0063,21.753L 49.0068,21.0029L 49.0068,28.6882L 57.008,35.0049L 54.0075,40.0056L 52.0073,38.0053L 52.0073,56.0078L 24.0033,56.0078 Z M 38.0053,26.9204L 27.0038,36.005L 27.0038,53.0074L 33.0046,53.0074L 33.0046,42.006L 43.006,42.006L 43.006,53.0074L 49.0068,53.0074L 49.0068,36.005L 38.0053,26.9204 Z</x:String>
</Page.Resources>然后发现使用的是 string ,如果这时创建了一个用户控件,里面写了一个属性,请看代码
public Geometry IconData
{
get { return (Geometry)GetValue(IconDataProperty); }
set { SetValue(IconDataProperty, value); }
}
public static readonly DependencyProperty IconDataProperty =
DependencyProperty.Register(nameof(IconData), typeof(Geometry), typeof(Header), new PropertyMetadata(null);界面直接使用代码
<local:Header x:Name="HeaderPanel" IconData="{StaticResource HomeIconGeometry}" />就会在运行出现无法从string转换,但是如何把用户控件改为 Path ,就可以运行
那么如何在用户控件使用资源的字符串
可以使用绑定,如果无法转换,可以写一个转换
先创建一个转换类
public class GeometryConvert : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
if (value is string str)
{
var geometry = (Geometry) XamlReader.Load(
"<Geometry xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'>"
+ str + "</Geometry>");
return geometry;
}
return null;
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}然后在使用绑定的地方使用转换
<local:GeometryConvert x:Key="GeometryConvert"></local:GeometryConvert>
<local:Header x:Name="HeaderPanel" IconData="{Binding Source={StaticResource HomeIconGeometry},Converter={StaticResource GeometryConvert}}" />可以看到,这个方法可以显示图片
所以,需要绑定字符串,可以使用这个方法。
有人说,绑定到字符串可以不使用转换,他可以做到,直接使用绑定,但是我暂时没法
边栏推荐
- Thrift installation configuration
- VPC2187/8 current mode PWM controller 4-100VIN ultra-wide voltage startup, highly integrated power control chip recommended
- C#爬虫之通过Selenium获取浏览器请求响应结果
- 基于3D机器视觉的采血试管分拣系统
- 网站设计师:Nicepage 4.15 Crack By Xacker
- 机器学习——线性回归
- The CPU suddenly soars and the system responds slowly, what is the cause?Is there any way to check?
- HCIA-R&S自用笔记(22)STP状态与计时器、STP拓扑变化、STP配置及实验
- 单行、多行文本超出显示省略号
- Google Earth Engine APP - one-click online viewing of global images from 1984 to this year and loading an image analysis at the same time
猜你喜欢

关于使用腾讯云HiFlow场景连接器每天提醒签到打卡

如何进行自动化测试?

基于3D机器视觉的采血试管分拣系统

Short-term reliability and economic evaluation of resilient microgrids under incentive-based demand response programs (Matlab code implementation)

在线生成接口文档

基于 eBPF 的 Kubernetes 可观测实践

Documentary on Security Reinforcement of Network Range Monitoring System (1)—SSL/TLS Encrypted Transmission of Log Data

使用.NET简单实现一个Redis的高性能克隆版(二)

CAN光纤转换器CAN光端机解决消防火灾报警

开发那些事儿:如何通过EasyCVR平台获取监控现场的人流量统计数据?
随机推荐
BigDecimal 使用注意!!“别踩坑”
实验室专利书写指南
在表格数据集上训练变分自编码器 (VAE)示例
powershell和cmd对比
gbase8s创建RANGE分片表
运力升级助力算力流转,中国数字经济的加速时刻
Scala104 - Built-in datetime functions for Spark.sql
Iptables防火墙基础知识介绍
斯坦福:未来的RGB LED可以贴在你的皮肤上
Matlab drawing 1
HCIA-R&S自用笔记(22)STP状态与计时器、STP拓扑变化、STP配置及实验
链表的经典入门LeetCode题目
数据集成:holo数据同步至redis。redis必须是集群模式?
老电脑怎么重装系统win10
PHP代码审计9—代码执行漏洞
数仓建模面试
智能视频监控平台EasyCVR如何使用接口批量导出iframe地址?
unity中实现ue眼球的渲染
CPU突然飙高系统反应慢,是怎么导致的?有什么办法排查?
【web自动化测试】playwright安装失败怎么办