使用组件资源Key而不是字符串来识别资源

作者: MovGP0创建于 2025年9月8日更新于 2026年5月18日
标签enhancementevaluation required

** 您的特性请求与问题有关吗 ? 请说明。 **

  • 目前使用字符串确定资源。 字符串只能在运行时验证, 而不是在写入 XAML 代码时验证
  • 当资源密钥在新版本中更改时,编译器没有显示问题,我们在运行时得到例外

说明你想要的解决方案

  • 使用 " 构成部分资源 " 使资源类型得到保存
  • ** 选项**:为后向兼容性保留现有的基于字符串的资源密钥,或因中断更改而增加版本数

** 说明你考虑过的备选办法**

  • 没有更好的办法

** 其他情况** 要创建资源密钥, 您需要在静态类中创建组件资源密钥 : {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? 公共静态部分类材料设计 { 公共静态组件RequestKey Prime50 Color { get;} = new(类型(Matrial Design Colors),名称(Primary50 Color)); //. {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?


在 " Resouce Dictionary " 中宣布资源时,使用 " 组件资源键 " 为 " Key " :
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
< Color 密钥='{x: Static md: Matrial Design Colors. Primary50 Color}}"... /> (中文(简体) ).

在使用资源时,我们现在可以使用由编译器检查的静态引用 : {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? <Brush Color=>{DynamicResources{x:Static md: Matrial Design Colors. Primary50 Color}}"... /> (中文(简体) ).

内容来源: MaterialDesignInXAML/MaterialDesignInXamlToolkit