首页 文章

覆盖控件样式

提问于
浏览
0

我创建了一个CustomControlLibrary.dll,它包含一个Control(MyControl),其样式在Themes文件夹的Generic.xaml中,按照默认的自动设置 .

如果我想在两个不同的项目中包含该dll,每个项目都为“MyControl”提供自定义样式以赋予它不同的外观,我在哪里放置这些自定义样式?

我认为我必须为每个应用程序安装一个Themes \ Generic.xaml,它定义了自定义样式,但是在完成此操作后,它仍然最终使用CustomControlLibrary.dll中定义的样式

2 回答

  • 0

    您有CustomControlLibrary.dll,它是MyControl的所有者 . 在那个dll中你定义了你的主题 . 任何其他可能包含您的DLL的项目都无法定义主题 .

    例如,其他项目可以在其窗口资源中为MyControl定义其自定义样式 .

    样式可以在任何级别定义 . :)

    检查此链接:

    http://msdn.microsoft.com/en-us/library/ms745683.aspx

  • 0

    解决方案是为每个项目定义特定样式并相应地应用它 .
    但请记住,您可以使用BasedOn属性创建正确的样式"inheritance" . 毕竟你应该得到一组你将在_2655636中管理的样式:

    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application:,,,/CustomControlLibrary;component/styles.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
    

相关问题