問題タブ [dynamicresource]
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.
wpf - clr:string の DynamicResource をリテラルではなく別のソースにバインドすることは可能ですか?
私はちょうど学んでいて、string
リテラルcentralRes
を別のコントロールの Text プロパティ (のようなsrc.Text
) にバインドできるかどうか興味があったので、更新すると、それにバインドされているすべてのものはdst
自動的に更新されます。
情報のための中央ハブのようなものです。これは可能ですか?
私が欲しいものの例:
wpf - カスタム コントロールの再帰的データ テンプレートを使用するにはどうすればよいですか
基本的に一種のTreeViewであるカスタムコントロールがあります。ここで、TreeView コントロールに任意のレベルの詳細を含める必要があるため、次のデータ テンプレートを思いつきました。
次の Generic.xaml があります
これが私のカスタムコントロールコンストラクターです
そして、これはコントロールがどのように見えるかです
これが私が問題だと思うのは
、同じテンプレートの再帰呼び出しについて、私が使用してDynamicResource
いる. これは私のものでは機能せず、実際のリソースは呼び出されませんでした。それを に変更するとStaticResource
、それ自体が認識されないため、コンパイルされません。どうすれば修正できますか?
完全なソリューションは、ここからダウンロードできます。
wpf - DynamicResource が機能しない
次のように定義されたコントロールを含む CustomControl ライブラリがあります。
これはうまくいきます。
しかし、「StaticResource」を「DynamicResource」に変更すると、赤が拾われなくなりますか?
どうしてこれなの?
c# - WPF の分離コードでリソース参照を複製するにはどうすればよいですか?
私のアプリケーションには、カラー リソースがあります。その色を xaml の動的リソースとして使用する要素が 1 つあります。
コードでは、このリソース参照を複製したいと考えています。
ただし、SetResourceReference は FrameworkElements または FrameworkContentElements に対してのみ機能します。SolidColorBrush はただの Freezable です。また、コードビハインドでリソース参照を取得する方法がわかりません。
両方の色が同時に変化するように WPF でこれを行う方法はありますか? 私の実際のアプリケーションでは、問題はそれほど単純ではないため、xaml に 2 つ目の DynamicResource を追加することはできません。
c# - C# コードから DynamicResource を変更するには?
アプリケーションの開始時に「再生」アイコンを表示する単純な「再生/一時停止」ボタンがあります。そのコードは次のとおりです。
私がやりたいのは、再生アイコンを押したときに一時停止アイコンに変更することです。コンテンツを に変更するだけです{DynamicResource appbar_control_pause}
。ただし、次のことを行うと:
ボタン内に文字通り文字列だけを表示します。どうすればそのプロパティを変更できますか?
wpf - WPF StaticResource と DynamicResource の比較
私は以下のように私のXamlを持っています
私のコードビハインドでは、次のようになります
私の質問は、最初に ChangeBrushObject ボタンをクリックすると、動的ボタンが黄色に変更され、次に ChangeColorProperty ボタンをクリックすると、動的ボタンが青色に変更されるだけで、静的ボタンには影響しません。
ただし、ChangeColorProperty ボタンを単独でクリックすると、静的ボタンと動的ボタンの両方が青に変わります。
なぜこのように振る舞うのですか?コントロールによって静的リソースとして参照されているリソースに新しいオブジェクトを割り当てようとすると、WPF は警告をスローしませんか?
また、動的リソースによって参照される存在しないリソースもテストしました。予想どおり、StaticResource が存在しないリソースを参照する場合、Xaml はコンパイル時に文句を言いますが、DynamicResource は文句を言いません。ただし、GenerateResourceForDynamic ボタンをクリックすると、背景として緑色が表示されますが、フェードアウトして再び表示され、繰り返されます。なぜこのようなことが起こるのですか?
編集: Freeze リソースを追加しました。奇妙な動作が再び発生しました。ChangeFreezeColorProperty ボタンをクリックすると、例外が発生します。ChangeFreezeBrushObject だけをクリックすると、FreezeBrushDynamic ボタンの色が変わります。ただし、ChangeFreezeBrushObject をクリックしてから ChangeFreezeColorProperty をクリックしても、例外はスローされません。
リソースをフリーズさせると、リソースにリンクされたオブジェクトのプロパティが読み取り専用になると思います。そのため、プロパティを変更すると、読み取り専用状態について不平を言う例外が発生します。ただし、凍結によってオブジェクト自体の変更が妨げられることはありません。
c# - WPF のコードを使用して文字列を動的リソースにバインドする方法
現在、Caliburn を使用して View と ViewModel をバインドするプロジェクトに取り組んでいます。実行時に言語を切り替えることができるようにするために、アプリケーションで使用されるすべての文字列を含む別のリソース ファイルを用意しています。たとえば TextBlock Text-bindings の一部は、次のように文字列リソースの 1 つにバインドされます。
SampleView.xaml
<TextBlock Text={DynamicResource Foo.Bar.Baz}
.../>
Language.en-US.xaml
<system:String x:Key="Foo.Bar.Baz">Im a string</system:String>
アプリケーションのカルチャを別の言語に変更すると、Foo.Bar.Baz への動的バインディングにより、実行時に文字列が新しい言語に更新されます。すごい!
ただし、アプリケーションのテキスト プロパティの一部は、次のように Caliburn を使用して ViewModel の文字列にバインドされています。
SampleView.xaml
<TextBlock Text={Binding SampleText}
.../>
SampleViewModel.cs
public string SampleText { get; set; }
の値は、SampleText
次のように Language.en-US.xaml の文字列リソースに設定されます。
...
SampleText = Application.Current.FindResource("Foo.Bar.Baz") as string;
...
残念ながら、アプリケーション カルチャを変更しても、文字列SampleText
は更新されません。
したがって、問題は、 SampleText を Language.en-US.xaml の文字列リソースに設定して、アプリケーション カルチャを変更すると自動的に更新されるようにするにはどうすればよいかということです。
注:このStackOverflowの質問に対するコメントを通じて、次のようなbindnigを通じて可能であると読みました:
SampleText = Application.Current.Resource["Foo.Bar.Baz"] as string;
しかし、これは私にとってはうまくいきませんでした。
wpf - ResourceDictionary の Freezable に対して DynamicResource を動的にする方法はありますか?
私はBrushes.xamlにこれを持っています:
そして、Generic.xaml で次のように使用します。
問題は、wpf がブラシをフリーズするため、DynamicResource
効果がないことです。
これを解決するきれいな方法はありますか?厄介なハックしか思い浮かびません。