問題タブ [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.
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 (または同様にバインド可能なもの) を使用する方法はありますか?
ヒントをありがとう
c# - WPFローカリゼーションのテキストフロー方向の設定
WPF LocalizationExtensionを使用していて、動作させることができます。ただし、FlowDirection(右から左)のサポートが組み込まれていると表示されていても、動作させることができず、ドキュメントが不十分です。
定義に行FrameworkElement.FlowDirection="{lex:LocText Key=FlowDirection, Dict=Strings, Assembly=LocalizationManager}
を追加しました。<Window ...>
しかし、それはのようなエラーをスローしますYou cannot use "" for Flow Direction
。しかし、テキストブロックに同じマークアップを使用すると、テキストを正常に機能させることができLeftToRight
ますRightToLeft
。
型変換の問題だと思いますが、修正方法がわかりません。ありがとう。
caliburn.micro - Caliburn でバインドされた int プロパティ値を初期化しても、mahApps SplitButton SelectedIndex プロパティにマップされない
次のように値を初期化しています: (MahApps.Metro 1.1.3-ALPHA)
問題は、ビューが起動されたときに dropDown mahApps コントロールに設定された値が表示されないということです...何が起こっているのですか?
c# - WPF ローカリゼーションの問題
テスト目的で、ダミー アプリケーションをローカライズして、ニーズに最適なものを確認しようとしています。
WPF Localization Extensionを試してみたかった.
だから私:
まったく新しい WPF アプリケーションを作成し、メイン ウィンドウを作成しました。
ナゲットによる WPF ローカリゼーション拡張機能への参照を追加しました。
名前付きの1つのresx
Localization.resx
と1つのresxを作成しましたLocalization.fr.resx
「WelcomeText」キーのテキストを両方の resx に追加しました。
メイン ウィンドウでは、次のように入力します。
ウィンドウ宣言で
TextBlock
グリッド内に 1 つ追加しました。<TextBlock Text="{lex:Loc WelcomeText}" />
アプリケーションを実行すると、テキストが英語で表示されます。
ここで、App.cs コンストラクターに次を追加します。
FR でアプリケーションをテストします。再構築して再起動しましたが、まだ英語でメッセージが表示されます。
だから最初に:私は何を間違えましたか?次に: 実行時に現在のカルチャを変更するにはどうすればよいですか?
c# - WPF ローカリゼーション拡張機能でマジック ストリングを防止する
ユーザーが実行時に言語を変更できる WPF アプリケーションを開発しています。C# コード (ViewModels など) では、リソースへの参照を使用しています。例えば:
これにより、Intellisense とコンパイル時のエラーがサポートされます。XAML コードでは、WPF ローカライゼーション拡張機能を使用しています。
問題は、XAML コードで「マジック ストリング」を使用しているため、リソース名が変更されたり、別のリソースに移動したりしても、コンパイル時にエラーが発生しないことです。また、intellisense メンバーをリストアップせずに開発する手間が増えます。
WPF Loc Extension の利点を利用せずに、C# コードのように静的参照 static でリソースを使用することは可能ですか?
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 は空のままです。