【问题标题】:How get the a static resource value at DesignTime in MarkupExtension?如何在 MarkupExtension 中的 DesignTime 获取静态资源值?
【发布时间】:2014-11-05 05:39:14
【问题描述】:

我成功创建了自己的 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;
/// ...

【问题讨论】:

    标签: c# wpf xaml markup-extensions


    【解决方案1】:

    试试:

    public class ResourceExtension : StaticExtension
    

    【讨论】:

    • 这太短了,没有帮助。我不太确定 Johan 的建议是什么。
    • 我不确定是否会回到这个问题。如果子类化StaticExtension,可能在设计时提供不同的服务提供者?
    猜你喜欢
    • 1970-01-01
    • 2012-08-02
    • 1970-01-01
    • 2015-11-18
    • 1970-01-01
    • 2011-05-22
    • 1970-01-01
    • 2017-05-27
    • 1970-01-01
    相关资源
    最近更新 更多