在页面上实例化WPF用户控件时,为什么在设计器中加载resources / resources.xaml时会出错?

时间:2018-10-06 18:04:07

标签: wpf xaml

我只在设计器中遇到此错误;我的游戏运行得很好。

错误是“无法找到资源resources / resources.xaml”。它仅在引用用户控件的视图中发生,并且仅在设计器中发生-在用户控件本身设计时(而不是在运行时)不发生;即使出现此错误,我也可以编译我的游戏。

在这里我声明用户控件实例:

<local:StatsView Grid.ColumnSpan="2" x:Name="stats"/>

这是我的用户控件的相关部分:

<UserControl x:Class="Wormholes.Views.StatsView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:Wormholes.Views" mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800"> <UserControl.Resources> <ResourceDictionary Source="/Resources/Resources.xaml" /> </UserControl.Resources> <Grid> ... </Grid> </UserControl>

除了用户控件之外,我还在每个页面中都引用了相同的Resources.xaml。这可能导致错误吗?如果是这样,我该如何解决?

1 个答案:

答案 0 :(得分:0)

您已经使用了相对URI,因此它将在您使用UserControl的某个位置查找资源文件。它找不到您的资源文件,因为您的资源文件不在AbsolutePath中。

AbsolutePath = CurrentPath(例如您使用UserControl的位置)+ RelativePath

因此请使用AbsolutePath:

   <ResourceDictionary Source="pack://application:,,,/{YourAssemblyName};component/Resources/Resources.xaml" />