問題タブ [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.
silverlight - Silverlight 3 の generic.xaml で MergedDictionaries を使用する
WPF では、テーマ フォルダー内の個別の XAML ファイルにマークアップを保持し、MergedDictionaries を使用してそれらを generic.xaml にインポートすることにより、複数のユーザー コントロールの XAML を整理することができました。
マージされた辞書サポートを導入する Silverlight 3 ベータ版が利用可能になったことで、Silverlight ユーザー コントロールで同じことが可能になるように思われました。しかし、マージされたディクショナリ ファイルに対するビルド アクションのすべての組み合わせと、generic.xaml 内のソース参照の対応する構文を試してみたにもかかわらず、うまく動作しないようです。
他の誰かが試しましたか?それが可能かどうか、そしてもしそうなら私が間違っていることを誰かが知っていますか?
OK - 多数のテスト プロジェクトの後、WPF で動作するサンプルを取得し、XAML と C# のコードを Silverlight 3 に移行しましたが、それでも失敗しました。すべての Silverlight 2 ビットとすべての Silverlight 3 ベータ ビットを完全にアンインストールして再インストールし、ついに物事が機能しました。
どういうわけか、ベータ版のインストールに失敗したとしか思えません。わかりませんが、明らかにバージョン 3 ランタイムがインストールされているにもかかわらず、まだ Silverlight 2 ランタイムで実行しているように見えました。
物事を調べて SL3 チームに確認してくれた Jared に感謝します...そして、同じマシンで Silverlight 2 と 3 を実行するための手順とバッチ ファイルを作成してくれたAmy DullardとShawn Wildermuthに感謝します。
wpf - WPF: 別のアセンブリ内の別のスタイルに基づくスタイル
アセンブリ A - ResourceDictionary には StyleA スタイルが含まれています。
アセンブリ B - アセンブリ A のリソースを B にマージするための ResourceDictionary.MergedDictionaries。
「StyleA」に基づいて「Assembly B」でスタイルを作成したいと思います。出来ますか?
私はこのスタイルを作成しようとしています:
しかし、StyleB を使用すると、実行時に XamlParseException 例外が発生します。
属性 'Style' の値をタイプ 'System.Windows.Style' のオブジェクトに変換できません。基本型 'IFrameworkInputElement' であるターゲット型を持つスタイルのみに基づくことができます。マークアップ ファイル 'SamSeekApp;component/mainwindow.xaml' のオブジェクト 'System.Windows.Controls.Button' でのエラー
silverlight-3.0 - Silverlight 3 RTM で外部マージ辞書が壊れている?
参照されたアセンブリでリソース ディクショナリを参照したいだけです。
アセンブリ名: ResourceTest.Content
リソース ディクショナリ パス: ./Dictionary2.xaml
これは SL3 Beta 1 で動作していました:
<ResourceDictionary Source="ResourceTest.Content;component/Dictionary2.xaml" />
Blend 3+Sketchflow でこれを試したところ、(設計時に) 機能しました。
<ResourceDictionary Source="pack://application:,,,/ResourceTest.Content;component/Dictionary2.xaml" />
しかし、いずれにしても、Visual Studio から実行すると、次のエラーが発生します。
属性 ResourceTest.Content;component/Dictionary2.xaml の値が範囲外です。[行: 10 位置: 44]
属性 pack://application:,,,/ResourceTest.Content;component/Dictionary2.xaml の値が範囲外です。[行: 11 位置: 44]
wpf - wpf の奇妙なスタイル動作?
OK、私は実行時にマージされた辞書をロードして、行き詰まったときに外観と動作を変更するアプリをプログラミングしていました。
私はできる限り問題を単純化しようとしましたが、非常に単純なものを思いついたので、明らかな出血を見落としているのではないかと心配していますが、とにかくここにあります:
問題は、なぜ最初のテキストボックスが緑色でないのですか? ==>つまり、デザイナーは緑色で表示しますが、アプリを実行すると、もはや...
この特定の問題に対する解決策は、マージされた辞書タグを削除することであることは知っていますが、マージされた辞書を使用してこれを解決する方法を知る必要があります。
ありがとう!
wpf - 実行時に MergedResources をロードするにはどうすればよいですか? コードが意図したとおりに機能しない
Web からリソースをロードするデスクトップ WPF アプリケーションがあります。これにより、必要に応じて、休日の前後にクリスマス テーマを追加するなど、さまざまなことができます。テーマをロードするには、Applications の現在のリソース ディクショナリを独自のリソース ディクショナリに置き換えます。
さて、すべてを含む 1 つの大きなリソース ファイルだけを使用するのではなく、一部のリソースを別のファイルに分けたいというところまで来ました。マージされたリソースを使用するだけで、これはかなり簡単になると思いました。上記のコードを簡単に変更するだけで機能すると思っていましたが、そうではありません。これは、私がしなければならないと思っていたことです。
アプリケーションを実行すると、通常のスタイルが使用されるだけで、追加したマージされたリソースは考慮されません。ここで何が間違っていますか?マージされたリソース (および複数のリソース) を実行時に動的に追加し、正しく動作させるにはどうすればよいですか?
ありがとう、カイル
c# - Silverlight アプリケーションのロード時にマージされたリソース ディクショナリを置き換える
トップレベル コントロールの XAML で MergedDictionary として読み込んでいる ResourceDictionary で定義されたスタイルとブラシのセットがあります。
XAP に独自の ResourceDictionary を持つ別の XAML ファイルが存在する場合、これらのスタイルとブラシの一部をオプションで置き換えようとしています。ユーザー コントロールで InitializeComponent() が呼び出される前に、実行時にこのディクショナリにマージしようとしています。これを行うために、次のコードを使用しています。
オプション ファイルのリソース ディクショナリは正常に読み込まれ、マージされますが、元のスタイル セットは常にこれをオーバーライドしているようです。XAML でマージされたディクショナリをコメント アウトし、実行時にそれらをロードして、完全に機能するようにすると、次のようになります。
このソリューションに関する私の問題は、XAML の既定のスタイルがないと、Blend でプロジェクトを開くことができないことです。デフォルトのスタイルを Blend に認識させたまま、動的に読み込まれたリソース ディクショナリを使用して実行時にオプションでオーバーライドできるようにするソリューションのアイデアはありますか? ありがとう!
wpf - VisualStudio2008で複数のスタイルを添付できません
こんにちは!
プロジェクトに「テンプレート」という名前のフォルダーを作成します。このフォルダーには、宣言されたすべてのDataTemplatesをさまざまなResourceDictionaryファイルに保存します。
私はそれを添付しています(それでStaticResourceになり、どこでも使用できます
私は多くのテンプレートを持っていますが、いくつかのテーマでは別のテンプレートを使用したいと思います。たとえば、OrderTemplateではContactTemplateを使用する必要があり、その逆も同様です。
問題は、Visual Studio 2008(はい、実行時に動作し、Expression Studioは問題を通知しません)がこれらのテンプレートに関するエラーを報告し、デザイナーに表示したくない(コンパイルします)ことです。
VSは、App.xamlファイルにマージされた順序でテンプレートを読み込みます。たとえば、OrderTemplateでは、ContactTemplateを使用できますが、その逆はできません。ContactTemplateでOrderTemplateを個別にマージしようとしましたが、さまざまなテンプレートでマージすると、循環的になり、SO例外が発生します。
共有する経験はありますか?設計時のサポートが必要です。
ありがとう
wpf - 別のライブラリの別のアセンブリで定義されたWPFスタイルキーを参照する方法
2つのライブラリと1つのアプリケーションアセンブリプロジェクトレイアウトがあり、一方のライブラリで定義されているもう一方のライブラリのキーでスタイルを参照するにはどうすればよいのでしょうか。
私のソリューションレイアウト:
- WpfControls.dll -WPFベースのNumericUpDownコントロール、その他の基本的なコントロール、および再利用可能にしたいいくつかのスタイルなど、一般的な再利用可能なコントロールを保持します。例のために、ここでの私のスタイルキーがMyButtonStyleとして定義されているとしましょう。
- SpecializedControls.dll-カスタム複合コントロールやWPFのUserControlsなど、アプリケーションに特化したコントロールを保持します。ここで、WpfControls.dllアセンブリで定義されているMyButtonStyleスタイルを参照します。
- Application.exe-このアセンブリは、SpecializedControls.dllアセンブリで定義されたコントロールを使用します。
単純な単一のコントロールライブラリとアプリケーションアセンブリを使用してこれを行う方法を説明する例を見てきましたが、私の場合は2つのアセンブリと1つのアプリケーションがあります。つまり、私の場合、MergeDictionariesの概念を使用できる2番目のコントロールライブラリにApp.xamlがありません。MergedDictionaries参照を各コントロールXAMLファイルに直接配置して、WpfControls.dllアセンブリで定義されたすべてのGeneric.xamlをマージできると確信していますが、これにより、スタイルがさまざまな場所に冗長にマージされると思います。私のSpecializedControlsアセンブリでは、これは最善の解決策とは思えません。さらに悪いことに、これらの辞書もApplication.exeにマージされる可能性がありますが、これにより、実行時にアプリケーションが肥大化し始めますか?
プログラムとリソースのオーバーヘッドを最小限に抑えて、このようなスタイルを共有するための推奨または最善のアプローチを誰かが明確にできますか。
更新:もう少しテストしたところ、同じアセンブリ内であっても、Generic.xaml内で定義されているリソースをそのキーで参照するのに問題があるようです。リソースキーがどのように機能するかを理解している方法にまったく問題がある可能性があるため、ComponentResourceKeyを調べるだけでなく、もう少し調査する必要があります。誰かが何かヒントや提案があれば助けてください。
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 /)
ありがとうロブ
silverlight - Silverlight Shared MergedDictionaries
私はSilverlight4を使用していて、いくつかの一般的なスタイル(色、ブラシ)を共有しようとしています。私の考えは、それらを「Common.xaml」リソースディクショナリに入れてから、他のすべてのリソースディクショナリで使用することでした。そのようなすべてを参照する:
問題は、InitializeComponentで、一般的なスタイルが見つからないことを示す例外が発生することです(名前/キーを持つリソースが見つかりません...)。
使用するすべてのリソースディクショナリで「Common.xaml」を明示的に参照する必要があります。これにより、基本的に、「Common.xaml」に存在するすべての色、ブラシ、テンプレートなどの複数のインスタンスが生成されます。
リソースを共有する方法がないので、Silverlightで一度だけインスタンス化されますか?