2

VS 2008 のカスタム マークアップ拡張機能を使用して、ローカリゼーション ソリューションを開発しました。

当時は、次のように使用していました。

<TextBlock Text={utilsWpf:Intl Key=ObjectName.PropertyName, DefaultText=Default Name} />

(DefaultText のスペースに注意してください)。(StackOverflow のテキスト色ツールが単語の色を変更する方法にも注意してください)。

しかし、問題なく動作し、問題なくコンパイルされます。

ただし、VS 2010 では、マークアップ拡張機能を実装するこの方法を使用してスペースを入力しようとすると、IDE は常にカンマを追加します。これにより、次のようになります。

<TextBlock Text={utilsWpf:Intl Key=ObjectName.PropertyName, DefaultText=Default, Name} />

もちろん、それはもうコンパイルされません...

それに対する 1 つの解決策は、このマークアップ拡張機能を別の方法で実装することです。

<TextBlock>
    <TextBlock.Text>
       <utilsWpf:Intl Key="ObjectName.PropertyName", DefaultText="Default Name"/>
    </TextBlock.Text>
</TextBlock>

しかし、多くの行が追加され、ご想像のとおり、テキストブロックが 1 つだけではありません...

別の解決策は、スペースを入力するのではなく、別のスペースをコピーして貼り付けることです (これは VS 2010 でもコンパイルできますが、非常に粗雑です)。

私が見ているように、私たちのソリューションはベスト プラクティスではありません。

不便なくスペースを入力できるようにするには、どのようなベスト プラクティスをアドバイスしますか?

あなたの洞察に感謝します。

4

1 に答える 1

0

一重引用符を使用してみてください。

<TextBlock Text="{utilsWpf:Intl Key=ObjectName.PropertyName, DefaultText='Default Name'}" /> 
于 2011-01-25T10:19:46.000 に答える