سؤال

هل من الممكن لقراءة ResourceDictionaries WPF من WinForms عناصر؟ إذا كان الجواب نعم، كيف؟

هل كانت مفيدة؟

المحلول

عند إضافة قواميس الموارد إلى مشروع WPF تم تعيين الإجراء بناء تلقائيا إلى الصفحة. وهذا يعني أن البرمجي تيار BAML ويضيفه إلى موارد الجمعية.

وSince WPF ديه وظيفة المدمج في قراءة دفق BAML لكن API لها ليس العام، لدينا لكتابة فئة المساعد الصغيرة التي الوصول إلى أسلوب داخلي على التفكير.

public static class BamlReader
{
    public static object Load(Stream stream)
    {
        ParserContext pc = new ParserContext();
        MethodInfo loadBamlMethod = typeof(XamlReader).GetMethod("LoadBaml", 
            BindingFlags.NonPublic | BindingFlags.Static)
        return loadBamlMethod.Invoke(null, new object[] { stream, pc, null, false });
    }
}

// Usage:
StreamResourceInfo sri = System.Windows.Application.GetResourceStream(
    new Uri("/MyAssemblyName;component/MyResourceDict.xaml", UriKind.Relative));
    ResourceDictionary resources = (ResourceDictionary)BamlReader.Load(sri.Stream);

المصدر: كيفية قراءة ResourceDictionaries WPF من WinForms عناصر

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top