問題タブ [wpflocalizationextension]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1954 参照

c# - MarkupExtension: 単純なプロパティを DependencyProperty に変換する

WPFLocalizationExtension ( CodePlex で利用可能) を使用して、WPF アプリケーションで文字列をローカライズしています。この単純な MarkupExtension は、次のような単純なシナリオでうまく機能します。

しかし、次のようなもっと複雑なことを試すとすぐに行き詰まりました。

(リソース付きwindowTitle = "MyApp v{0}")。

FormatSegment1 はプレーンな INotifyPropertyChange プロパティであるため、何もバインドできません。FormatSegment1 が DependencyProperty であれば可能だったので、ソースをダウンロードしてパッチを当ててみました。

修正しました

クラスはBaseLocalizeExtensionから継承しMarkupExtensionます:

ビルドすると、通常の"GetValue/SetValue does not exist in current context"エラーが発生します。BaseLocalizeExtensionクラスを継承させようとしましDependencyObjectたが、大量のエラーが発生しました。

MarkupExtension で xaml バインド可能な DependencyProperty (または同様にバインド可能なもの) を使用する方法はありますか?

ヒントをありがとう

0 投票する
1 に答える
1309 参照

c# - WPFローカリゼーションのテキストフロー方向の設定

WPF LocalizationExtensionを使用していて、動作させることができます。ただし、FlowDirection(右から左)のサポートが組み込まれていると表示されていても、動作させることができず、ドキュメントが不十分です。

定義に行FrameworkElement.FlowDirection="{lex:LocText Key=FlowDirection, Dict=Strings, Assembly=LocalizationManager}を追加しました。<Window ...>しかし、それはのようなエラーをスローしますYou cannot use "" for Flow Direction。しかし、テキストブロックに同じマークアップを使用すると、テキストを正常に機能させることができLeftToRightますRightToLeft

型変換の問題だと思いますが、修正方法がわかりません。ありがとう。

0 投票する
0 に答える
81 参照

caliburn.micro - Caliburn でバインドされた int プロパティ値を初期化しても、mahApps SplitButton SelectedIndex プロパティにマップされない

次のように値を初期化しています: (MahApps.Metro 1.1.3-ALPHA)

問題は、ビューが起動されたときに dropDown mahApps コントロールに設定された値が表示されないということです...何が起こっているのですか?

0 投票する
1 に答える
777 参照

c# - WPF ローカリゼーションの問題

テスト目的で、ダミー アプリケーションをローカライズして、ニーズに最適なものを確認しようとしています。

WPF Localization Extensionを試してみたかった.

だから私:

  1. まったく新しい WPF アプリケーションを作成し、メイン ウィンドウを作成しました。

  2. ナゲットによる WPF ローカリゼーション拡張機能への参照を追加しました。

  3. 名前付きの1つのresxLocalization.resxと1つのresxを作成しましたLocalization.fr.resx

  4. 「WelcomeText」キーのテキストを両方の resx に追加しました。

  5. メイン ウィンドウでは、次のように入力します。

    ウィンドウ宣言で

  6. TextBlockグリッド内に 1 つ追加しました。<TextBlock Text="{lex:Loc WelcomeText}" />

アプリケーションを実行すると、テキストが英語で表示されます。

ここで、App.cs コンストラクターに次を追加します。

FR でアプリケーションをテストします。再構築して再起動しましたが、まだ英語でメッセージが表示されます。

だから最初に:私は何を間違えましたか?次に: 実行時に現在のカルチャを変更するにはどうすればよいですか?

0 投票する
1 に答える
331 参照

c# - WPF ローカリゼーション拡張機能でマジック ストリングを防止する

ユーザーが実行時に言語を変更できる WPF アプリケーションを開発しています。C# コード (ViewModels など) では、リソースへの参照を使用しています。例えば:

これにより、Intellisense とコンパイル時のエラーがサポートされます。XAML コードでは、WPF ローカライゼーション拡張機能を使用しています。

問題は、XAML コードで「マジック ストリング」を使用しているため、リソース名が変更されたり、別のリソースに移動したりしても、コンパイル時にエラーが発生しないことです。また、intellisense メンバーをリストアップせずに開発する手間が増えます。

WPF Loc Extension の利点を利用せずに、C# コードのように静的参照 static でリソースを使用することは可能ですか?

0 投票する
1 に答える
2322 参照

wpf - WPF ローカリゼーション拡張機能の XAML でのプレースホルダーの使用

プログラムで WPF Localization Extension を使用しています。同様のリソース (「メートル単位の長さ」、「キロメートル単位の長さ」など) の量を減らすために、プレースホルダーを使用して XAML コードで設定したいと考えています。

私はこのようなことを考えました

リソース「UI_Length」の値

CodeBehind では、これは String.Format で非常に簡単です

しかし、XAML で別の文字列や別のリソース エントリを追加するにはどうすればよいでしょうか?

Binding placeholder from resource file in WPFによると、それは可能であるように見えますが、ラベルに対して実行することはできません

[アップデート]

2 つの Resource 値を追加することができました。トリックは、Label.Content に TextBlock を追加することでした。リンクを参照

しかし、ここでまだ問題があります。起動時にこれは正常に機能しますが、言語を切り替えようとすると

「バインドは使用後に変更できません」と表示されます。エラー。複数のリソース値を使用して、実行時に言語を切り替えることができる同様の方法はありますか?

【アップデート2】

Liero からの提案を試しましたが、まだ問題があります。

私の MainView では、DataContext を MainViewModel に設定しました。VM には LocalizedTexts のインスタンスがあります。ViewModel で言語を変更した後、RaisePropertiesChanged() を呼び出しますが、出力が得られません。

TextBlock は LengthInMeters にバインドされています

言語を変更した後、RaisePorpertyChanged を呼び出しています。

LengthInMeters は次のようになります。

しかし、TextBlock は空のままです。