問題タブ [resourcedictionary]

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 に答える
1550 参照

wpf - WPF マージされた ResourceDictionary の不整合

これは、Brush オブジェクトと、この Brush オブジェクトを Template プロパティのいくつかのアニメーション化されたプロパティに使用する Style で構成されます (StaticResource マークアップ拡張を介して)。問題は; ディクショナリをグローバル アプリケーション ResourceDictionary (Application.Resources) とマージすると、ブラシはフリーズせず、スタイルを共有するすべての要素がブラシへの変更の影響を受けます。

興味深いことに、ブラシをマージされたセカンダリ ResourceDictionary に移動すると、ブラシがフリーズされ、すべてが期待どおりに機能します (フリーズ可能なオブジェクトは、アニメーション化される前に複製されます)。この問題は、フリーズ可能なオブジェクトと、StaticResource マークアップを介してこのオブジェクトを参照する他のリソースの場合にのみ発生します。拡張子は、同じマージされた ResourceDictionary に存在します。App.xaml、Window.xaml、Dictionary.xaml のサンプル コードを以下に貼り付けました。同じ結果を再現し、これが WPF のバグであることを確認していただければ幸いです。

注: Visual Studio で ResourceDictionary (Dictionary.xaml) のコンテンツ タイプを Page から Resource に変更すると (そして、その BAML バージョンではなく XAML をコンパイル済みアセンブリに埋め込むと)、問題はなくなります。

Window.xaml

App.xaml

Dictionary.xaml

0 投票する
2 に答える
2841 参照

silverlight - Silverlight3でのマージされたリソースディクショナリの適切な使用法

私が読んだように:http://msdn.microsoft.com/en-us/library/cc903952 (VS.95).aspx 、特に「ResourceDictionaryを使用した前方参照」というラベルの付いたセクション:

特定のリソースディクショナリ内からの静的リソース参照は、リソース参照の前に字句的に定義されているリソースを参照する必要があります。前方参照は、静的リソース参照では解決できません。このため、静的リソース参照を使用する場合は、リソースごとのさらなる使用を目的としたリソースがそれぞれのリソースディクショナリの先頭またはその近くで定義されるように、リソースディクショナリ構造を設計する必要があります。

これは、App.xamlでこのようなことを実行できないことを意味しますか?

Brushes.xamlにSolidColorBrush、LinearColorBrushなどが含まれている場合、Colors.xamlで定義されている色を参照する定義はありますか?

例えば

Colors.xamlで次のように色を定義します。

たとえば、キー「AppOrangeRed」のリソースが見つからないことを示すランタイムエラーが発生します。

色とブラシを整理して再利用できるようにするためのベストプラクティスは何ですか(適切な場合、色は構造体であり、ブラシは参照オブジェクトであると理解しています。http: //weblogs.manas.com.ar/spalladino/2009/で説明されています)。 03/02 / silverlight-xaml-guidelines /

ありがとうロブ

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

wpf - WPF - 別のコントロール内の暗黙的なスタイル コントロール

WPF で、別のコントロール内にあるコントロールを暗黙的にスタイル設定することは可能ですか?

たとえば、すべての画像のスタイルを設定せずに、ボタン内の画像のスタイルを設定しますか?

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

wpf - WPFでリソースとして幅/高さを指定

マージン/パディングなどのいくつかのスタイルで再利用できるように、WPF で幅/高さをリソースとして指定する方法はありますか?

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

c# - WPF 実行時のスタイルの更新

実行時にデフォルトのウィンドウ スタイルを動的に更新して、実行時に FontSize と FontFamily を動的に変更できるようにしたいと考えています。リソース ディクショナリ内のスタイルは実行時に封印されており、変更できないことがわかったので、次の方法でスタイルを更新しました。

次のコードを使用します。

このアプローチにはいくつかの問題があり、なぜそうなのかについていくつか質問があります。

  1. スタイルが実行時に封印されるのはなぜですか? また、封印を解除する方法はありますか?
  2. 新しいスタイルを再度追加すると、すべてのウィンドウでこれが反映されないのはなぜですか? すべてのウィンドウに手動で適用する必要があるのはなぜですか?
  3. より良い方法はありますか?
0 投票する
1 に答える
7461 参照

c# - 実行時に wpf リソース ディクショナリを切り替える

ユーザーが実行時にテーマを変更できる wpf アプリケーションを構築しようとしています。これまでに行ったことは、アプリケーションのすべての色が定義された resourcedictionary を作成し、xaml でこのディクショナリにバインドすることです。

以下は、リソース ディクショナリを切り替えるためのコードです。

このコードは正常に実行され、リソース ディクショナリを切り替えていることはわかっていますが、画面に既に表示されている要素は更新されません。私の質問は、新しいリソース ディクショナリを考慮して画面を更新または再バインドするにはどうすればよいかということです。

ありがとう

小さい

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

silverlight - Expression Blend では画像が表示されるが、実行時には表示されない

問題の画像は、これと同様の ResourceDictionary 内の ControlTemplate にあります (明確にするためにさまざまな詳細が削除されています)。

Expression Blend でコントロールを表示すると画像は正常に表示されますが、アプリを実行すると画像が表示されません。同じ画像を UserControl にドロップすると、問題なく表示されるため、問題はテンプレートの使用に関係しています。

テンプレート内に画像リソースをロードする必要がある他の方法はありますか?

0 投票する
4 に答える
24505 参照

wpf - コレクションまたは配列をwpfリソースディクショナリに追加します

私は高低を検索しましたが、これに対する答えを見つけることができません。2つの質問があります

  1. XAMLで配列またはコレクションをどのように作成しますか。そこに貼り付けてコンボボックスにバインドしたい配列があります。私の最初のアイデアは、ItemsControlをリソースディクショナリに配置することでしたが、コンボボックスのItemsSourceはIEnumerableを想定しているため、機能しませんでした。

これが私のリソース辞書で試したもので、どちらも機能しません

これが私がそれにバインドする方法です

編集:更新

私はこの最初の部分をこのように機能させました

ただし、配列リストは使用したくないので、汎用リストを使用したいので、誰かがその方法を知っている場合は、私に知らせてください。

更新の編集:XAMLはジェネリックスのサポートが非常に限られていると思うので、配列リストが今のところ最善の方法かもしれませんが、誰かが回答を持っている場合は、2番目の質問についても助けが必要です

2位。XAMLでマージされたリソースディクショナリを参照しようとしましたが、Window.resourcesの下にディクショナリ以外のものがあり、x:Keyを追加する必要があったため、問題が発生しました。キーを追加すると、システムはリソースディクショナリ内のアイテムを見つけることができなくなります。代わりに、マージされた辞書をGrid.Resourcesに移動する必要がありました。理想的には、app.xamlでマージされた辞書を参照したいのですが、同じ問題があります

ここにいくつかのサンプルコードがあります。この最初の部分は、コンバーターがあり、複数のアイテムがある場合はすべてのアイテムにキーが必要であると文句を言ったため、コンパイルにx:keyが必要でした

これに変更しなければなりませんでした

ありがとうございました

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

silverlight - ResourceDictionary のストーリーボード

ストーリーボードを ResourceDictionary ファイルに移動したいのですが、それを行うのに問題があります。私はいたるところを見てきましたが、「リソース」を共有可能にする必要がありますが、x:Shared 属性がない場合に Silverlight でそれを行うにはどうすればよいですか。ここにコードがあります

これが私がXAMLに持っているものです

そして、ここに私が得るエラーがあります

エラー: 要素は既に別の要素の子です。

ストーリーボードを入れたときにそのエラーが発生するだけで、他には何もありません(例:スタイル)。wpfではなくSilverlight 3を使用しています。

0 投票する
2 に答える
2934 参照

wpf - WPF リソースは Application.Resources にマージされましたが、実行時に解決されませんでした

ResourceDictionaryにマージされた の一部であるブラシがありApplication.Resourcesます。

しかし、何らかの理由で、スタイルがコントロールの 1 つに適用されているときに実行時に解決されません。ただし、例外がスローされた時点でイミディエイト ウィンドウから Application.Current.FindResource("BrushName") を呼び出すと、リソースが見つかります。

何か不足していますか?WPF は、アプリのリソースでリソースを検索しようとするはずではありませんか?

更新 アプリケーションは非常に大きいため、実際のコードをすべて投稿することはできませんが、リソースがマージされて使用される方法は次のとおりです。

Brushes.xaml

SomeStyles.xaml

App.xaml

そして、一部のコントロールは、次のようにリソースを使用してスタイルを使用する場合があります。

アップデート

コードで作成されたメニューとコントロールで発生するようです。どのウィンドウのビジュアル ツリーにも含まれていないコントロールやメニューに関連している可能性はありますか?