我正在使用VS2008。我有这个班级
[System.Windows.Markup.ContentProperty("Child")]
public class CaptionedBox : Control
{
static CaptionedBox()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(CaptionedBox),
new FrameworkPropertyMetadata(typeof(CaptionedBox)));
}
public static readonly DependencyProperty ShadeVisibilityProperty =
DependencyProperty.Register(
"ShadeVisibility", typeof(Visibility), typeof(CaptionedBox), new
PropertyMetadata(Visibility.Hidden));
}
这个代码在ResourceDictionary中(在一个名为Generic.xaml的文件中)
<ControlTemplate TargetType="{x:Type wft:CaptionedBox}">
<Grid>
...
<Rectangle Fill="#44000000" Visibility="{TemplateBinding ShadeVisibility}"/>
</Grid>
</ControlTemplate>
没有错误,没有问题,我在整个地方都使用了这个CaptionedBox。
我在同一个项目中有另一个XAML页面,该页面使用Source =“../ Themes / Generic.xaml”引用此ResourceDictionary。当我打开该页面时,它显示“资源字典XAML文件有错误,无法加载”。它指的是那时的Generic.XAML。如果我双击错误消息,即使在VS 2008中打开Generic.XAML,我会得到一个不同的选项卡,看起来像是不同的Generic.xaml,除了内容是相同的,如果我复制每个的完整路径标签,我看到了:
C:\源\ LyonsForge \根\ PumpServicing \分支\ PSRT_1_0_2 \代码\工作台\控制\向导.. \主题\ Generic.xaml C:\源\ LyonsForge \根\ PumpServicing \分支\ PSRT_1_0_2 \代码\工作台\控制\主题\ Generic.xaml
虽然有点尴尬,但路径相同。
任何线索?
答案 0 :(得分:0)
您是否已将generic.xaml复制到本地?另外,不要忘记在文件属性上设置选项:“复制到输出目录”到“始终复制”,因为generic.xaml不是要编译的。