10

最近VS2012にアップグレードしました。.net4.5の使用を開始する必要があったので、アップグレードする必要がありましたが、それは重要ではありません。私の問題は次のとおりです。

ResourceDictionaryのメインプロジェクトにはAppStyles.xaml、と呼ばれるApp.Xamlものがあり、次のものがあります。

<ResourceDictionary>
  <ResourceDictionary.MergedDictionaries>
     <ResourceDictionary Source="AppStyles.xaml"/>
  <ResourceDictionary.MergedDictionaries>
</ResourceDictionary>

ResourceDictionaryにはスタイルがあり、を設定することで、このスタイルをプロジェクトの任意のボタンに適用できますStyle={StaticResource MyButton}

VS 2012にアップグレードした後、タイトルにエラーが頻繁に表示されることに気付きました。デバッグが停止する場合と停止しない場合があります。

これを行うための別の方法はありますか、それともVS 2012に問題がありますか?

4

7 に答える 7

6

VS2010でも時々この問題が発生します。「クリーン ソリューション」と「リビルド ソリューション」を作成すると、問題が解決する場合があります。それでもうまくいかない場合は、通常 VS2010 を再起動します。

Style x:Key の名前を別のものに変更したところ、問題はなくなりました。しかし、私はこの解決策が完璧だとは思いません...

<Application.Resources>
<ResourceDictionary>
  <ResourceDictionary.MergedDictionaries>

    <!-- Load Infrastructure's Resource Dictionaries -->
    <ResourceDictionary Source="/MyProject.Modules.Infrastructure;component/ResourceDictionaries/ResourceLibrary.xaml" />

  </ResourceDictionary.MergedDictionaries>

  <!-- Workaround for ResourceDictionary loading bug/optimization -->
  <Style TargetType="{x:Type Rectangle}" />

</ResourceDictionary>

私のコード サンプルの回避策に関するこの質問への参照:マージされたディクショナリを含むリソース ディクショナリを参照する際の問題

于 2013-03-05T14:31:19.017 に答える
4

他のプロジェクトが参照する共通またはインフラストラクチャ プロジェクトを作成できます。リソース リソースを追加します。次に、パック URI を作成します。次に、リソース ディクショナリ内のユーザー コントロールまたはウィンドウ リソースで参照します。

<...Resources>
<ResourceDictionary>
   <!-- Resource Dictionaries -->
   <ResourceDictionary.MergedDictionaries>
       <ResourceDictionary 
          Source="pack://application:,,,/Common;component/Dictionaries/Styles.xaml"/>
   </ResourceDictionary.MergedDictionaries>

ユーザーコントロールで、またはウィンドウの場合は Window.Resources を使用します。これは私にとってはうまくいきます。

于 2013-09-25T08:26:44.607 に答える
1

リソース ディクショナリをプロジェクトに追加し、そのビルド アクションをリソースに変更してから、次のようにコードに uri を追加してみてください。

    <ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
   <ResourceDictionary 
      Source="/Styles.xaml"/>
</ResourceDictionary.MergedDictionaries>

または、プロパティタブを使用してvs2012に処理させます...

于 2014-04-24T16:30:16.027 に答える