我正在尝试在外部dll中创建一个名为DataTemplate.xaml的ResourceFile,并在WP7页面中使用它。当我在页面的标题中执行以下操作时出现错误
<ResourceDictionary Source="pack://application:,,,/WP7SharedClassLibrary;component/DataTemplate.xaml" />
错误是 “当前项目不支持'application'作为包URI的权限组件。”
有没有其他人遇到这个并解决了这个问题?
答案 0 :(得分:13)
我已设法使用以下步骤使其工作:
将以下XAML添加到新的XAML文件中:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<SolidColorBrush x:Key="ForegroundBrush" Color="Red" />
</ResourceDictionary>
在WP7ExternalResourcesTest中,打开App.xaml并将Application.Resources
部分更改为以下内容:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/WP7ExternalResourcesTestLibrary;component/External.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
Foreground="{StaticResource ForegroundBrush}"
添加到名为“PageTitle”的TextBlock
。TextBlock
以红色正确显示了“页面名称”字样。希望这有帮助。
答案 1 :(得分:1)
我在尝试共享XAML ResourceDictionary文件时尝试了包语法并得到了相同的错误消息。我最终使用了这种语法,它对我有用。
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/MyDLLName;component/Folder/MyXAMLFile.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
答案 2 :(得分:0)
Silverlight不支持包URI。这是一个WPF功能。
如果在Silverlight中检查Source
对象的Image
属性的类型,则为Uri
。但是在WPF中,source是一个类型为ImageSource.