2012-04-03 4 views
3

WPFは、私のアプリケーション全体で{StaticResource MyBackground}を "White"ではなく、リソース定義を変更することでアプリケーション全体の外観を再定義できるという点で優れています。Blendを使用しないリソースの使用

問題:サブコントロール内のグローバルリソースへの参照がある場合、Expression Blendは機能しません。あなたのアプリをテーマにする他の方法はありますか?私はBlendデザイナーのサポートを失うことを喜んでおらず、すべての単一のコントロールでコード/ xamlを複製しています。この規模のバグを修正していないことは驚くべきことです。

アイデア?あなたの代わりにDynamicResourcesを使用する場合は、このバグが消えたように

乾杯

+1

"サブコントロール内のグローバルリソースへの参照がある場合、Expression Blendは機能しません。" どのような意味で「今すぐ動作しますか?あなたの "グローバルリソース"はどこにありますか? –

+0

デザイナーはリソースを見つけることができないため、コントロールを表示しません。これは、下のリンクで報告されたバグです。誰かを願って以来、より良い解決策が見つかりました:http://stackoverflow.com/questions/2665988/mvvm-light-blend-designer-view-error-cannot-find-resource-named-locator –

+0

私の理解は、リソースApp.xamlにマージされたものは、BlendがStaticResource(http://blogs.msdn.com/b/unnir/archive/2009/03/31/blend-wpf-and-resource-referencesで確認されています)で見つけることができます。 aspx)。あなたの「グローバルリソース」はどこにありますか? –

答えて

0

は思えます。

は、b)で、ここでの説明:http://blogs.msdn.com/b/unnir/archive/2009/03/31/blend-wpf-and-resource-references.aspx

誰かが同じバグの以前のSOの質問でこのリンクを掲載、何らかの理由でそれが何のupvotesを持っていないし、他の回答の下に失われました。

+0

ダイナミックを使用する場合はペナルティがありますが、Blendを幸せにするために、目立つようになった場合は、すべてを運用環境の配備に静的に切り替えることができます。 –

1

私はこれを試していませんが、うまくいくように聞こえます。また、情報は少し古いです。それが問題を解決すれば教えてください。 :) the Blend blogから

、プロジェクトファイルに次の2つのチャンクを追加します。

<DesignTime Condition="'$(SolutionPath)'!='' AND Exists('$(SolutionPath)')">true</DesignTime> 

…. 
<ApplicationDefinition Condition="'$(DesignTime)'=='true' AND '$(BuildingInsideVisualStudio)'!='true' AND '$(BuildingInsideExpressionBlend)'!='true'" Include="App.xaml"> 
     <Generator>MSBuild:Compile</Generator> 
     <SubType>Designer</SubType> 
</ApplicationDefinition> 

基本的にこれは、それが設計時に使用されますので、条件付きでプロジェクトにあなたのapp.xamlを含んではなく、ビルド時に。私は、ビルドコンパイルボタンをクリックするのではなく、msbuildを使用してプロダクションコードを生成すると仮定していると推測しています。

+0

DesignTimeをどこに追加すればよいですか? – Lance

+0

ベスト推測:csprojファイルの最上部付近。 –

関連する問題