問題タブ [mergeddictionaries]

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

c# - 別のディクショナリで定義された Style で BasedOn プロパティを使用する

私が取り組んでいるアプリケーションには、2 つの ResourceDictionary、DefaultStyles.xaml、および CustomStyles.xaml があります。

CustomStyles ディクショナリのスタイルが、他のディクショナリで定義された基本スタイルを使用する可能性はありますか?

DefaultStyles.xaml:

CustomStyles.xaml:

アプリ.xaml:

コードを実行すると、次の例外がスローされます。

名前/キー TextBlockDefaultStyle のリソースが見つかりません。

両方のスタイルが同じファイルにある場合はうまく機能します。

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

wpf - 外部アセンブリからの問題参照コンバータ

すべてのコンバーターを参照するリソースディクショナリを作成しているので、個々のコンバーターを参照する必要はありません。私のコンバーターは別のアセンブリにあり、それらをインポートするには、次のようにします。

  1. 外部アセンブリへの参照を追加
  2. リソースディクショナリを作成する
  3. Convertersアセンブリを参照するxml名前空間を追加します
  4. 参照コンバーター

だから私の辞書は次のようになります:

ただし、ビルドしようとすると、次の例外が発生します。

なぜそれが起こっているのか考えはありますか?

注:インテリセンスから、すべてのコンバーターが入力後に候補リストに表示されるため、コンバーターアセンブリの名前空間は正しいようです。<Converter:

編集:VSとブレンドデザイナーはどちらも、コントロールプレビューをレンダリングするときにそのコンバーターを見つけることができます。

編集:私は、辞書がマージされることとは何の関係もないことを理解しました。Windowのリソースにコンバーターを追加するときにも同じ問題が発生します。

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

wpf - MergedDictionariesとリソースルックアップ

特にリソースルックアップのパフォーマンスに関しては、リソースディクショナリとマージディクショナリ全般に問題があります。いくつかのパフォーマンステストの結果、ResourceDictionary.get_MergedDictionariesが最もヒット数の多い呼び出しであることがわかりました(ANTSプロファイラーでチェック済み)。約300のリソースディクショナリxamlsがあり、それらの多くは、他のスタイルを「含める」ためにマージされたディクショナリを使用しています。get_MergedDictionariesは、アプリケーションの一部で、あまり発生していない部分で、約1,000万ヒットでした。ですから、私の推測では、一般的にリソースディクショナリで完全に間違ったことをしているのです。だから私はすべてをリファクタリングしようとしました、そして私はすべてのマージされた辞書を取り除くことを試みたいです。

さて、実際の質問に移りましょう。マージディクショナリを削除しようとしましたが、失敗しました。私の理解では、StaticResourceを使用する場合、ルックアップでは現在のリソースの前にリソースを定義する必要があります。次の短い例を作成しました。

1つのメインプロジェクトと1つのカスタムコントロールライブラリ。

カスタムコントロールライブラリには2つのxamlsが含まれています。

メインプロジェクトでは、MainWindow.xamlは次のようになります

それが望ましい目標です。ただし、リソース「myColor」が見つからないため、残念ながらこれはクラッシュします。もちろん、それを修正する方法を知っています。Templates.xamlにmergeddictionaryを追加し、Colors.xamlを参照しますが、論理ツリーと要素のリソースに応じてリソースが検索されることを常に考えていました。私の理解は; ボタンが作成されます。テンプレートを検索してみてください..見つかりました; 自分のリソースでは見つからない色を検索し、上に移動してWindowsリソースを使用してみてください。

私は間違っているようです。だから私は誰かが私のためにこれにいくつかの光を当てることができることを願っています。WPFを多用し、それにもかかわらず多くのことを達成しましたが、最初に学習した動作が間違っていたため、リソースの検索だけでパフォーマンスがかなり悪くなりました。どんな助けでも大歓迎です

よろしくお願いしますニコ

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

wpf - マージされた辞書で StaticResource ルックアップが機能しない

私はこれについてしばらく読んでいますが、私を助けることができる答えを見つけることができないようです.

私のプロジェクトには、コントロールのスタイルがたくさん含まれているライブラリがあります。これらのスタイルは、リソースを静的リソースとして使用します。したがって、「リソース ツリー」は基本的に次のようになります。

  • テーマ.xaml
    • SizeResources.xaml
    • ColorResources.xaml
    • ControlStyles.xaml
      • Control1.xaml
      • Control2.xaml

Theme.xaml は、SizeResources、ColorResources、および ControlStyles をマージします。ControlStyles は、特定のコントロールのすべての xaml をマージします。

今、私のアプリケーションでそのテーマを適用したいので、OnStartup で Theme.xaml を Application.Current.Resources.MergedDictionaries に追加します。これは正常に機能し、すべてのキーがそこにあります。コントロールを使用しようとすると、サイズや色のリソースが見つからないなどの例外が発生します。具体例:

ColorResources で定義された背景色を持つ特別なボタンがあります。私の ButtonStyle はこのリソースを静的リソースとして使用します。アプリケーション プロジェクトでそのボタンを使用すると、バックグラウンド リソースが見つからないという例外が発生します。control1.xaml で静的リソースを動的リソースに変更すると、機能します。

静的リソースでこれを行うことができない理由はありますか? 私の理解では、静的も同様に機能するはずです。

0 投票する
3 に答える
17580 参照

c# - Silverlightの別のResourceDictionaryからResourceDictionaryのリソースを参照する

App.xamlに次のコードセットがあります。

NavigationPanel.xamlには、次のようなスタイルが含まれています。

{StaticResource DarkBackground}は、Brushes.xamlファイル(つまり、最初のリソースディクショナリ)で定義されています。それは次のように定義されます

リソース辞書にあります。

実行時に、次のエラーが発生します。

行番号と位置は、app.xamlのNavigationPanel.xamlリソースディクショナリを参照します。

含まれているリソースディクショナリだけでなく、他のコントロールからブラシを参照できます。

なぜ参照できないのか、またはマージされたリソースディクショナリの階層の上位にあるリソースへの参照を解決しないのですか?ここで何が欠けていますか?

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

windows-phone-7 - WP7 Mango ResouceDictionary MergedDictionaries

WP7 Mango の ResourceDictionary に問題があります。

インターネットで見つけたもののほとんどは、次のように簡単です。

1) 本文を含む Xaml ファイル:

2) App.xaml に以下を追加します。

なぜ機能しないのかわかりません。このようにすると、例外が発生します。

タイプ 'ResourceDictionary' は ResourceDictionary 内にあり、キーを持っていません。

ステップ 2 で xaml の 2 行目に ked を追加すると実行されますが、不明なエラーでクラッシュします。MyResources.xaml ファイルからリソースを追加していないようです。

誰かがここで解決策を指摘できますか?

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

wpf - リソースを app.xaml にマージしますか?

.NET Framework 4.0 を対象としています。

usercontrol.xamlアプリケーションのリソース ( ) からアクセスできるようにしたいいくつかのリソースを含む UserControl ( ) がありますapp.xaml。(私の UserControl は でインスタンス化されMainWindow.xamlます。)

これまでのところ、app.xamlでこれを試しました:

しかし、Visual Studio はこれについて不平を言っています: リソース ディクショナリ "usercontrol.xaml" の検索中にエラーが発生しました。

Q: UserControl のリソースをアプリケーションに追加して、実行時にこれを行うにはどうすればよいですか?

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

c# - XAMLリソースの処理がゆっくりと私を夢中にさせている

緩いXAMLを使用しています(ビルドアクションなし、ただし常に出力ディレクトリにコピーします)。また、サブフォルダーにあるいくつかのマージされたディクショナリを参照するリソースディクショナリである「ルート」xamlがあります。これは私のフォルダ構造です:

再コンパイルせずにフォルダーにxamlファイルを追加できるようにする必要があります。そのため、緩いxamlsを使用する必要があります。

アプリケーションでルートxamlをロードしますが、マージされた辞書が見つからないという例外が常に発生します。ソースとして相対パスを割り当てるさまざまなバリエーションを試しました。それらのいくつかは次のとおりです。

私の驚いたことに(そして進行中の恐怖)、それらのどれもうまくいきませんでした。

私は自分の正気を疑問視し始めたので、URIを使用して相対パスを生成する小さなテストアプリケーションを作成しました。

生成された相対パスは、予想どおり、SubFolder1/MergedDict1.xamlでも機能しませんでした。正しい相対パスを取得するための黒魔術を誰が教えてくれますか?

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

.net - app.xamlでMergedDictionariesが見つかりません

WPFアプリケーション(「Ferhad.Wpf」という名前)を作成しました。次に、「Ferhad.Wpf.Core」と「Ferhad.Wpf.SystemStyles」という名前の2つのクラスライブラリをソリューションに追加しました。

「Ferhad.Wpf.Core」には「Resources.xaml」のみがあります。

ただし、「Ferhad.Wpf.SystemStyles」には「ButtonStyles.xaml」と「Styles.xaml」もあります。これが「ButtonStyles.xaml」です。

および「Styles.xaml」:

そしてここにapp.xamlがあります:

MainWindow.xamlの設計時にはすべて問題ないように見えますが、アプリケーションを実行すると例外がスローされます。Set property 'System.Windows.ResourceDictionary.Source' threw an exception.

私はそれについてグーグルで検索しましたが、何も役に立ちませんでした。ファイルのBuildActionを変更しようとしましたが、それも役に立ちませんでした。

アップデート:

例外は、行番号「8」と行位置「18」です。

そして、内部の例外は次のとおりです。{"Could not load file or assembly 'Ferhad.Wpf.SystemStyles, Culture=neutral' or one of its dependencies. The system cannot find the file specified.":"Ferhad.Wpf.SystemStyles, Culture=neutral"}

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

xaml - winrtxamlマージされたリソース

アプリケーションスタイルをいくつかのxamlファイルに分ける必要があります。しかし、私はまた、次のようないくつかの共有値を定義する必要があります

他のファイルで定義されたスタイルでこの値を使用するための単一ファイル。例えば:

および別のリソース辞書ファイル:

しかし、App.xamlファイルでマージされたリソースディクショナリを定義しようとすると

このランタイム例外が発生します:"メッセージ="名前/キーSharedValueを持つリソースが見つかりません "

これを行うことは可能であり、私が間違っていることを教えてもらえますか?ありがとう。