2012-02-23 13 views
0

外部アセンブリからリソースを解決するのに少し問題があります。デフォルトスタイルは実行時に外部アセンブリから解決されません

私はテーマと呼ばれるプロジェクトでStyles.xamlファイルを持っていると私は次のように宣言されたデフォルトのボタンのスタイルがあります別のWPFプロジェクト(ただし、同じ溶液中で

<Style TargetType="{x:Type Button}" x:Key="{x:Type Button}"> 
    <!--Setters here--> 
    </Style> 

そしてを)私がapp.xamlファイルに次き:

<Button Width="100" Height="100" /> 

<ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary 
     Source="/Theme;component/Styles.xaml" /> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 

そして、メインウィンドウで、私はそうのようにそれに添付なしスタイルでデフォルトボタンを宣言しますデザインビューで

、ボタンがStyles.xamlファイルからスタイルを拾うように見えますが、私はビルド時に、プロジェクトを実行し、標準のボタンのスタイルにボタンがちょうどデフォルト。私は(そしてそれが持っている)ディレクトリを構築Theme.dllファイルは、WPFに渡ってコピーされたことを確認するためにチェックして

なぜこれが起こっているので、私は知りません。私はこの

<Style TargetType="{x:Type Button}" x:Key="MyStyle"> 

のようにボタンのスタイルを定義し、この

<Button Style={StaticResource MyStyle} Width="100" Height="100" /> 

のように、他のプロジェクトで、ボタンの上にそれを直接参照する場合

興味深いことに、これは、デザインビューでのスタイルをピックアッププロジェクトが構築され実行されたときに正常に動作します。

アイデア?どんな助けも素晴らしいだろう!

クリス

答えて

1

あなたが埋め込まれたリソースを参照しない場合、すなわちsiteoforiginで、あなたはXAMLファイルを参照する完全なpack URIを使用する必要があります。

+0

これは、理解の私の不足かもしれないが、私はこのようなpackuri使用する場合:パック:// siteoforigin:,,, /テーマを、コンポーネント/ Styles.xaml私は、ディレクトリが指定した場所に存在することを確認し、」例外を取得します" Theme assembyはWPFアプリケーションのルートディレクトリにあるので、なぜこれが機能していないのか分かりません。お返事をありがとうございます! – lookitskris

+0

これまでのコメントは無視されています。ありがとうございました – lookitskris

関連する問題