問題タブ [pack-uri]
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# - ユーザー コントロール ライブラリの XAML 内のリソース イメージにアクセスするにはどうすればよいですか?
WPF ユーザー コントロールのライブラリを作成していますが、XAML 経由でアクセスしようとしているリソース イメージに問題があります。面白いことに、画像は設計時に期待どおりに表示され、実行時にのみ失敗します。
ビルド アクションを「none」、「content」、「resource」、「embedded resource」に設定しようとしましたが、次の不可解な例外が引き続き発生します。
「「System.Windows.Baml2006.TypeConverterMarkupExtension」に値を指定すると、例外がスローされました。行番号 '18' および行位置 '6'。
内部例外を見ると、パックURIに問題があるようです。私がしようとすると:
私は得る:
Assembly.GetEntryAssembly() は null を返します。
これはおそらく、私のライブラリが別のアセンブリ内から呼び出されているためです。しかし、推奨事項に従って試してみると:
次の内部例外が発生します。
「URIプレフィックスが認識されません。」
さらに面白いことに、実際の C# コード (つまり、XAML 経由ではない) を介して問題なくアクセスできる別の画像リソースがあります。
私は何を間違っていますか?とてもシンプルになりそうな気がしますが、今は頭を悩ませています。
c# - generic.xaml マージ辞書でパック URI が機能しない
カスタム コントロール ライブラリを作成し、ルート パスに「FlipView」という名前のコントロールを作成しました。次に、スタイルを削除し、ルート パスでGeneric.xaml
指定された独自のリソース ディクショナリに移動しました。次に、次のコードを使用して、FlipView.xaml
そのリソース ディクショナリをマージします。Generic.xaml
次に、別のwpfプロジェクトでコントロールを使用しましたが、XamlParseException
とInnerException
言っ てスローします
リソース 'flipview.xaml' が見つかりません。
なぜできないのですか?リソース ディクショナリは、コントロール ライブラリ プロジェクトのルート パスにあります。
Source
プロパティ セッターを"pack://application:,,,/MyCustomControls;component/FlipView.xaml"
(はカスタム コントロール ライブラリの名前です)に置き換えると、MyCustomControls
完全に正常に動作します。
Generic.xaml:
これはなぜですか?
WPF プロジェクトの場合、ルート パスを参照し、再びpack://application,,,/
ルート パスを参照するため、これは冗長に見えます。WpfAssemblyName;component/
なぜ必要なのGeneric.xaml
ですか?
編集:この質問を見ましたが、理由が説明されていません。
c# - リソース ディクショナリ参照時の例外
私のソリューションは、次のプロジェクトで構成されています。
- ServiceTools.Com
- ServiceTools.UI (スタートアップ)
- ServiceTools.UI.Controls
- ServiceTools.UI.Themes
UI.Controls では、Button から派生するカスタム ボタン コントロールを作成しました。このカスタム ボタンは、ServiceTools.UI.Themes.Buttons.Default.xamlにある ResourceDictionary を使用する必要があります。
したがって、ServiceTools.UI.Controls は ServiceTools.UI.Themes を参照して使用します
ディクショナリを使用しようとすると、IntelliSense はすべてのブラシを提案します (少なくともトリガー セクションの外)。アプリケーションのデバッグを開始すると、System.Windows.Markup.XamlParseException (
内部例外: ファイルまたはアセンブリ 'ServiceTools.UI.Themes, Culture=neutral' またはその依存関係の 1 つを読み込めませんでした。指定されたファイルが見つかりません。":"ServiceTools.UI.Themes, Culture=neutral"
これが期待どおりに機能しない理由を誰か教えてもらえますか?
編集1:
テスト目的で、ServiceTools.UI.Controls 内に新しい ResourceDictionary を追加し、次のように参照しました。
しかし、同じ結果 - 「リソースが見つかりません」という例外。