c# - Windows Phone 类库中的 RecourceDictionary

标签 c# wpf xaml windows-phone-7 windows-phone-8

我需要做的是将不同的数据模板和样式定义到 Windows Phone 类库中的资源字典中,并在该库中使用它们。到目前为止我已经尝试了很多方法但没有成功。有人以前这样做过吗?

到目前为止我尝试过的:

  1. 将样式放在主题 > generic.xaml 下,并尝试通过 Resources["StyleName"] as Style 在代码中使用它。资源为空,因此样式未正确加载。 .xaml 的构建操作已设置为资源。

  2. 将 RecourceDictionary.xaml 文件放入类库根文件夹中,并尝试通过 Resources["StyleName"] as Style 在代码中使用它。资源为空,因此样式未正确加载。 .xaml 的构建操作已设置为资源。

  3. 尝试创建 Style xaml IN-CODE,尽管这不是最佳方案,并且在解析 xaml 时仍然会出现错误 - 无论如何我都不想想要使用此解决方案。

我在这里做错了什么?为什么代码中的资源表总是?如何正确设置其Resources.Source?到目前为止,我尝试的所有操作都抛出了异常。

谢谢。

最佳答案

好的。因为我在这上面浪费了很多时间,所以我将发布我最终如何解决它的方法。

所以我所拥有的是以下内容:

  • Windows Phone 类库。
  • /Themes 文件夹下的资源字典,构建操作设置为资源,自定义工具下没有任何内容。注意:RD 位于同一个项目中 - 在类库内
    • 资源字典称为 test.xaml,其中有一个具有多种样式的转换器。

现在为了能够在我的代码中使用 aStyle = (Style)Resources["StyleName"]; 我必须将其加载到类库构造函数中,如下所示:

Resources.Source = new Uri("/CLASS_LIB_NAME;component/Themes/test.xaml", UriKind.Relative);

这是我在不出现任何异常的情况下完成这项工作的唯一方法。

当然,有人可以用 MergedDictionaries 替换 Resources.Source 来加载更多 .xaml 样式文件。我只需要为此控件加载一个。

关于c# - Windows Phone 类库中的 RecourceDictionary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21911513/

相关文章:

c# - 将 'System.Collections.Generic.IEnumerable<string>' 转换为 'string[]

c# - RoutedEventHandler 未正确添加到指定元素

c# - TabControl.SelectedItem 不是 TabItem? RelativeSource 绑定(bind)失败

c# - 具有动态列和行的 DevExpress GridControl

c# - 同时写入两个文本框

c# - 无法在 SignalR 中将类型 'System.Threading.Tasks.Task<object>' 隐式转换为 'string'

c# - Linq递归父子

c# - Window.ShowDialog 的奇怪行为

c# - 如何从 ViewModel 更新 View

c# - 更改页面上 AppBarButton 的颜色