[英]Getting Generic.xaml working from WPF control embedded in WinForms
我有一個Windows窗體中嵌入的WPF控件,工作正常。 但我在Themes / Generic.xaml中的WPF項目中擁有所有樣式。 當我將WPF控件嵌入Windows窗體ElementHost
控件時,不會拾取這些樣式。
我是否需要更改WPF視圖以在其“資源”部分中明確包含樣式,還是應該自動拾取generic.xaml文件?
Themes / Generic.xaml是否在不同的程序集中?
問題是應用程序沒有找到定義樣式的ResourceDictionary。
你可以做的是創建一個像這樣的靜態SharedDictionaryManager類:
public static class SharedDictionaryManager
{
private static ResourceDictionary _sharedDictionary;
internal static ResourceDictionary SharedDictionary
{
get
{
if (_sharedDictionary == null)
{
System.Uri resourceLocater =
new System.Uri("/assembly;component/Themes/Generic.xaml",
System.UriKind.Relative);
_sharedDictionary =
(ResourceDictionary)Application.LoadComponent(resourceLocater);
}
return _sharedDictionary;
}
}
}
當您創建HostControl時,您添加資源字典執行控件:
ctrl.Resources.MergedDictionaries.Add(SharedDictionaryManager.SharedDictionary);
如果您有多個資源字典,則每個資源字典可以有一個這樣的屬性,或者您可以擁有一個屬性來加載所有資源字典,然后合並所有字典。
現在,應該自動選擇您需要的樣式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.