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

时间:2014-04-30 10:46:16

标签: c# wpf xaml markup-extensions

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

我在ProvideValue(IServieProvider ServiceProvider)中有以下代码:

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;
/// ...

1 个答案:

答案 0 :(得分:1)

尝试:

public class ResourceExtension : StaticExtension