Wpf

WPF UserControls: 'x:Shared =' False ''を使用しても画像が消える



Wpf Usercontrols Image Disappears Even Withx



解決:

問題はではありませんBitmapImageこれは、ボタンのセッター内のコンテンツです。一度作成されるため、インスタンス間で「ジャンプ」する必要があります。

簡単ですが、WPF風ではないソリューションが設定されていますx:Shared = 'False'スタイル。



正しい方法は使用することですControlTemplateまたはDataTemplate。

あなたの観察から:



' 両方のボタンの内容を画像に直接設定すると、問題なく機能します '-これを行うには、2つの異なるインスタンスを作成するためです。画像オブジェクト。

しかしこれは: ' スタイリングの要点は、それを正確に回避することです。 'は誤解です-スタイルはコンテンツコントロールのコンテンツを設定することを意図したものではなく、コンテンツはコンテキストに依存します。 (コンテンツに依存せずに)すべてのボタンで繰り返されるビジュアルがある場合、それは次の場所に存在する必要があります。ボタンのControlTemplate。コンテンツに依存するビジュアルがある場合(ただし、コンテンツはビジュアルではありません)、DataTemplate。