c# - 如何使用 C# 代码中的标记扩展?

标签 c# wpf textblock markup-extensions

假设我有 SomeExtension MarkupExtension。有谁知道如何从 C# 代码将其分配给属性?

例如在 XAML 中我有:

<TextBlock Text="{l:Translate LocalizedByMarkupExtension}" />

我想用 C# 代码做同样的事情。

最佳答案

在您的示例中,您的 TranslateExtension 需要实现一个采用单个参数的构造函数。所以你只需要像这样将值传递给构造函数:

TranslateExtension ext = new TranslateExtension("LocalizedByMarkupExtension");

可以使用关联的 TypeConverter 或特殊的 Xaml 值转换器来转换参数。但是,如果您只是传递字符串,那么上面的方法应该有效。

然后你会调用ProvideValue获取结果的方法。

关于c# - 如何使用 C# 代码中的标记扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3872562/

相关文章:

c# - MVVM WPF 主从组合框

xaml - 在 XAML 中设置今天的日期

java - 使用Java,如何获取TextBlock文本的 'ActualWidth'并使用它?

c# - 当 OS 为非英文时,GetSystemTimeZone 为英文

wpf - Silverlight 是 WPF 的子集吗?

c# - WPF MVVM 在 ViewModel 中存储用户控件?一个大禁忌?

c# - WPF C# 在特定位置的文本 block 内插入图像(代码)

c# - 偏移列标题会留下背景显示的空间

c# - C# 中循环异步任务列表

c# - 按下键时如何中断(不使用线程)console.readline?