【问题标题】:Implicit styling of a container window容器窗口的隐式样式
【发布时间】:2014-02-24 17:09:40
【问题描述】:

我正在开发一个应用程序,它有一个由子用户控件组成的窗口容器。 我有一个 MyStyles.xaml 文档,由各个用户控件及其子控件在控件级别使用。

也就是说,我在每个用户控件内部声明样式,并使用

将其应用于各个控件
<Combobox Style = {StaticResource MyStylesComboBox} ...

如何通过在容器窗口级别定义用户控件的样式来隐含这一点,以便样式向下层叠?

提前致谢。

【问题讨论】:

    标签: .net wpf c#-4.0 implicit-style


    【解决方案1】:

    窗口资源下声明样式(以防希望在此窗口下托管的用户控件之间共享)

    可能在应用资源下(以防想跨多个窗口共享)

    <Window.Resources>
       <!-- Move your styles here -->
    </Window.Resources>
    

    如果它是一个文件,您可以使用ResourceDictionary 合并它。请查看此内容以获取更多详细信息Creating and Consuming ResourceDictionary

    类似这样的:

    <Window.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="ResourceFileName.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Window.Resources>
    

    【讨论】:

    • 它是一个包含多种样式的文件...有没有办法可以在 中引用它?
    • 是的,您可以使用 ResourceDictionary 做到这一点。我在答案中添加了链接,这会让你继续前进。
    • 我确实做到了这一点,但是当我在容器 window.resources 级别声明样式后从单个用户控件中删除样式时,用户控件内的控件找不到样式,即样式没有级联...这就是为什么我发布这个 qn,我觉得我没有在窗口级别正确引用它。
    • 确保您已将资源文件的完整相对路径添加为源路径。应该是FolderName\ResourceFile.xaml 可以在这里发布相关的代码示例吗?
    • 我发现了问题...我正在为我的样式文件中的控件添加 x:Key。所以,它一直在寻找控件的隐式样式,但找不到。我删除了它并分配了 targetType,它现在就像一个奇迹! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多