如何在MarkupExtension的DesignTime中获取静态资源值

本文关键字:获取 静态 资源 DesignTime MarkupExtension | 更新日期: 2023-09-27 18:01:00

我成功创建了自己的MarkupExtension,我将其命名为"GtringResource",它运行良好,但在设计模式下没有。

我在ProviderValue(IServieProviderServiceProvider(中有以下代码:

public override object ProvideValue(IServiceProvider serviceProvider)
{
        if (System.ComponentModel.DesignerProperties.GetIsInDesignMode(new  DependencyObject()))
        {
            return "design mode";
        }
        StaticResourceExtension staticResourceExtension = new StaticResourceExtension(this.GtringKey);
        var gtringresource = staticResourceExtension.ProvideValue(serviceProvider) as Gtring;            
        return gtringresource.en;
}

我想返回应该在运行时出现的值,因为我从合并的字典中检索该值,如xaml:中所示

<Button x:Name="downloadButton"  Content="{intllectual:GtringResource downloadGtring}"/>

我试过了,但没有帮助:

/// ... when detect desingmode "IsDesingMode"
return ((Gtring)Application.Current.TryFindResource(GtringKey)).en;
/// ...

如何在MarkupExtension的DesignTime中获取静态资源值

尝试:

public class ResourceExtension : StaticExtension