2011-10-05 89 views
0

我正在使用VS2008。我有這個類WPF問題TemplateBinding

[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頁面在同一個項目中引用此ResourceDictionary與Source =「../ Themes/Generic.xaml」。當我打開該頁面時,它會顯示「資源字典XAML文件有錯誤,無法加載」。它指的是那時的Generic.XAML。如果我雙擊錯誤消息,即使在VS 2008中打開Generic.XAML,我也會看到一個不同的Generic.xaml選項卡,除了內容完全相同,並且如果我複製每個Generic.xaml的完整路徑標籤,我看到:

C:\ Source \ LyonsForge \ root \ PumpServicing \ branches \ PSRT_1_0_2 \ Code \ Bench \ Controls \ Wizard .. \ Themes \ Generic.xaml C:\ Source \ LyonsForge \ root \ PumpServicing \ branches \ PSRT_1_0_2 \ Code \ Bench \ Controls \ Themes \ Generic.xaml

雖然有點尷尬,它們是相同的路徑。

任何線索?

+0

我在研究時做過的其他事情:刪除所有obj和bin文件夾,清理並重建整個項目,搜索整個硬盤驅動器以查找Generic.Xaml的其他實例....重新啓動:) –

回答

0

你已經使你的generic.xaml複製本地?另外不要忘記在文件的屬性上設置選項:「複製到輸出目錄」到「總是複製」,因爲generic.xaml並不打算編譯。

+0

有什麼區別「複製本地「和」複製到輸出目錄「?此應用程序已運行兩年,複製到輸出目錄=不復制。但我試圖改變它總是複製。得到了同樣的錯誤。 –