我成功创建了自己的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;
/// ...
答案 0 :(得分:1)
尝试:
public class ResourceExtension : StaticExtension