c# - UWP 中的自定义 MarkupExtension

标签 c# .net xaml uwp markup-extensions

我想创建自己的MarkupExtension(如BindingTemplateBinding...)

我如何才能像在 WPF 中那样为通用应用程序做到这一点?

最佳答案

我有一个悲伤,但没有。 UWP 目前不支持自定义标记扩展。

在某些情况下,您可以通过使用绑定(bind)和转换器来解决这个问题。例如,要使用资源字符串(不使用 x:Uid),我有一个实际上不需要值的转换器,只需要一个参数(资源 ID)。

例如,我可能会绑定(bind)如下:

<TextBlock
    Text="{x:Bind Language, Mode=OneWay, Converter={StaticResource Localize}, ConverterParameter=MyResourceId}"
/>

(此绑定(bind)不需要路径,但无论如何我都绑定(bind)到 Language,这允许即时切换语言。)

More about the LocalizeConverter here .

但无论如何。如果我一直在做 WPF,这将是一个标记扩展。 Binding 本身当然是一种标记扩展,因此只要您可以在其约束范围内工作,它就是一种可能的解决方法。

编辑

我只想强调 Clemens 在他对 OP 的评论中给出的链接:

https://wpdev.uservoice.com/forums/110705-universal-windows-platform/suggestions/7232264-add-markup-extensions-to-and-improve-winrt-xaml

更新

There is now limited support for custom markup extensions ! (向 Michael Hawker 的评论致敬。)

关于c# - UWP 中的自定义 MarkupExtension,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41245320/

相关文章:

c# - Catel Person应用示例

c# - 绑定(bind)到控件模板

c# - 宇宙数据库 : Add Item in non existent parent using Patch

c# - 在处理调用者之前尚未完成的 await 调用会发生什么情况?

.net - .NET检测灰度图像

c# - Windows Phone 数据绑定(bind)列表选择器到字符串列表

c# - 动态添加填充有绑定(bind)文本框的网格行

c# - 序列化(TextWriter,“对象”)与序列化(XmlWriter,“对象”)

java - .NET 是否与 Java 的 .properties 文件等效?

c# - 为什么 AWS Lambda 环境中的 EPPlus Excel 库会抛出 "The type initializer for ' Gdip' 抛出异常”