C# Resharper:有没有一种方法可以通过WPF本地化扩展为XAML中的资源ID启用自动完成?

C# Resharper:有没有一种方法可以通过WPF本地化扩展为XAML中的资源ID启用自动完成?,c#,wpf,localization,resharper,C#,Wpf,Localization,Resharper,在一个C#项目中,我使用 在XAML文件中,它如下所示: <TextBlock Text="{lex:Loc MyResourceId}" /> 当我键入“MyResourceId”之类的资源ID时,是否有办法将Reshapper设置为具有自动完成功能?否。Reshapper的智能完成功能无法通过分析标记扩展来推断有效的资源密钥。它甚至不知道Key表示资源密钥,也不知道WPF本地化扩展如何解析密钥并将其映射到底层本地化提供程序。它只知道LocExtension需要一个strin

在一个C#项目中,我使用

在XAML文件中,它如下所示:

<TextBlock Text="{lex:Loc MyResourceId}" />


当我键入“MyResourceId”之类的资源ID时,是否有办法将Reshapper设置为具有自动完成功能?

否。Reshapper的智能完成功能无法通过分析标记扩展来推断有效的资源密钥。它甚至不知道
Key
表示资源密钥,也不知道WPF本地化扩展如何解析密钥并将其映射到底层本地化提供程序。它只知道
LocExtension
需要一个
string
值;它不知道这个值代表什么


从本地化API来看,
ILocalizationProvider
甚至没有提供查询哪些键可用的方法;您只能给它一个键,它将尝试返回一个值。不幸的是,这排除了以ReSharper扩展的形式实现completion support yourself的可能性。您还需要修改本地化库。

这通常在没有ReSharper的visual studio中工作。我有VS2013和ReSharper 8.x,它对我来说很好。此功能不起作用的原因可能是因为容器的复杂视觉树结构?这件事发生在我身上,真的吗?只是尝试了一个非常基本的XAML文件,没有成功。我也在使用VS2013和Resharper8.x…VS怎么知道如何自动完成?键基本上只是一个任意字符串,查找在运行时进行。我正在考虑写一个Resharper扩展来实现这一点,但我注意到,如果你问的是这个问题,isI没有撒谎是多么复杂;-)。我写这篇评论是因为当我以
风格使用它时,我确实得到了有关
StaticResource
的信息。不知道为什么,但有时有效,有时无效。如果你问我,这并不是真正的问题,我只是应付了。顺便说一句,我使用的资源是在同一个
xaml
dile中定义的,而不是在
resourcedcational
中定义的,我认为这可能会对它产生相当大的影响。啊,我明白了。不,你没有撒谎,这只是另一种情况;-)在问题中的示例代码中,MyResourceId不是指StaticResource,而是指(非WPF)纯字符串资源。MyResourcedId是它的ID,它在运行时匹配到一个(本地化的)字符串。有没有办法让Resharper使用该查询接口自动完成?或者我需要更改库并编写Resharper扩展吗?在这种情况下,我想不出任何方法让Resharper“正常工作”,因此除了更改本地化库之外,还需要有人编写Resharper扩展。