我有一個包含一個主題「引擎」一個.dll。我幾乎完成了這個引擎的內置組合框,通過.dll處理主題。總之我想要做到的是一個獨立的.dll文件,我可以在任何項目中引用和(無需添加任何代碼的託管應用程序)有我的主題,風格等..的MainWindow.Background設置外部資源
到目前爲止這有效,但我遇到了一點困境。由於該.dll使用URI語法加載必要的XAML文件在運行時,託管應用控制自己不知道的資源,直到應用程序被加載。現在這會產生一個編譯時警告,但在運行應用程序時沒有問題。
我的問題與此編譯時的問題做。如果直到運行時才能查看我的.dll提供的畫筆,如何設置主窗口的背景顏色?
<Window x:Class="Check.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mycon="clr-namespace:ThemeLibrary.MyControls;assembly=ThemeLibrary"
Title="MainWindow" Height="350" Width="525" WindowStyle="None" AllowsTransparency="True"
Background="{***DynamicResource ResourceKey=TransparentColorBrush***}">
再次儘管有錯誤,程序編譯和運行良好,因爲如果動態資源不能得到解決的窗口只是默認,但一旦該.dll加載包含一刷,其關鍵資源字典是TransparentColorBrush,那麼窗口背景會適當地改變。但是,如果我手寫我.DLL關說市民一起玩,他們不會知道不同的刷子鍵是什麼,因此將不能夠做到這一點的黑客。
那麼,如何在.dll中設置Application.Current.MainWindow.Background =(從URI加載的資源字典中的筆刷,或字典本身),或者將筆刷的鍵作爲公共屬性公開?