2016-09-23 5 views
0

私のブートストラップアプリケーションでは、私自身のメッセージボックスを使用しています。このメッセージボックスには、dllに存在するスタイリングが必要です。他のビュー(xaml)の場合、それは次のようResourceDictionaryとして追加されます。BootstrapperアプリケーションでResourceDictionaryを追加する方法

<UserControl.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="/MyApp;component/MyStyle.xaml" /> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</UserControl.Resources> 

それともこのスタイルを追加することができ、それが動作を特徴と一般的には任意のC#アプリケーションがapp.xamlを持っています。ブートストラップの場合、私はapp.xamlを追加することはできませんまたはこれを提供するResourceDictionary。任意のポインタ?

答えて

0

リソースディクショナリをアプリケーションリソースに追加するには、まず2つのことが必要です。ネイティブBootstrapperがWPFウィンドウをホストしているので、アプリケーションの設定は自動的に行われません。これは単にSystem.Windows.Applicationのインスタンスを作成することで行うことができます。次に、Application.ResourceAssemblyを設定する必要があります。これらの2つの手順の後に、Application.Current.Resourcesを使用してアプリケーションリソースにアクセスできます。完全性について完全なCodesample:私は願っています

public class CustomBootstrapper : BootstrapperApplication 
{ 
    protected override void Run() 
    { 
     if (Application.Current == null) 
     { 
      new Application(); 
     } 
     if (Application.ResourceAssembly == null) 
     { 
      var assembly = typeof(CustomBootstrapper).Assembly; 
      Application.ResourceAssembly = assembly; 
     } 
     var myStyle = (ResourceDictionary)Application.LoadComponent(new Uri("/styling/MyStyle.xaml", UriKind.Relative)); 
     Application.Current.Resources.MergedDictionaries.Add(myStyle); 
     var view = new MainWindow(); 
     view.Show(); 
    } 
} 

これはあなたの質問に答える

関連する問題