gpt4 book ai didi

xaml - 使用 MergedDictionaries (UWP) 拆分 generic.xaml 文件的正确语法是什么

转载 作者:行者123 更新时间:2023-12-04 14:42:37 24 4
gpt4 key购买 nike

考虑我创建一个库 MyCustomControlsProject 的情况包含一组自定义控件。而不是将所有这些控件的 XAML 代码放在一个非常大的 generic.xaml 中,我想将每个控件分开在它自己的 XAML 文件中,然后从 generic.xaml 引用该文件

<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="<url_syntax_file_1>" />
<ResourceDictionary Source="<url_syntax_file_2>" />
</ResourceDictionary.MergedDictionaries>

解决方案资源管理器(以及文件系统)中的文件夹结构如下所示:
  • MyCustomControlsProject(项目/文件夹)
  • 主题(文件夹)
  • Generic.xaml(文件)
  • ControlTemplates(文件夹)
  • MyControl1.xaml(文件)
  • MyControl2.xaml(文件)

  • 过去,我在 Silverlight 和 Silverlight for Win Phone 中使用以下语法执行此操作:
    <ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="/MyCustomControlsProject;Component/Themes/ControlTemplates/MyControl1.xaml"/>
    <ResourceDictionary Source="/MyCustomControlsProject;Component/Themes/ControlTemplates/MyControl2.xaml"/>
    </ResourceDictionary.MergedDictionaries>

    对于使用以下语法的 Windows Phone 8.1:
    <ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="ms-appx:///Themes/ControlTemplates/MyControl1.xaml" />
    <ResourceDictionary Source="ms-appx:///Themes/ControlTemplates/MyControl2.xaml" />
    </ResourceDictionary.MergedDictionaries>

    这些语法都不适用于 Win 10 (UWP)。尝试使用这些会导致运行时异常:
    An exception of type 'Windows.UI.Xaml.Markup.XamlParseException' occurred in MyApplication.exe but was not handled in user code
    WinRT information: Failed to assign to property 'Windows.UI.Xaml.ResourceDictionary.Source' because the type 'Windows.Foundation.String' cannot be assigned to the type 'Windows.Foundation.Uri'.

    我也尝试过这种导致相同异常的语法:
    <ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="ControlTemplates/MyControl1.xaml" />
    <ResourceDictionary Source="ControlTemplates/MyControl2.xaml" />
    </ResourceDictionary.MergedDictionaries>

    有趣的是,似乎 app.xaml 使用上述语法没有问题。

    有谁知道 source 中 url 字符串的正确语法吗? ResourceDictionary 中的属性generic.xaml 中的节点?或者这是 UWP 还没有 catch 的东西?

    最佳答案

    正确的语法是:

    <ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="ms-appx:///MyCustomControlsProject/Themes/ControlTemplates/MyControl1.xaml" />
    <ResourceDictionary Source="ms-appx:///MyCustomControlsProject/Themes/ControlTemplates/MyControl2.xaml" />
    </ResourceDictionary.MergedDictionaries>

    关于xaml - 使用 MergedDictionaries (UWP) 拆分 generic.xaml 文件的正确语法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33295502/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com