晚上好。請回答 WPF XAML 資源問題。
我有一個名為 Resources 的用戶控制專案。在這個專案中,我有一個包含多個 XAML 檔案的目錄。我已將這些資源合并到專案根目錄中的 Main.xaml 檔案中。
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resources;component/xaml/Buttons.xaml" />
<ResourceDictionary Source="Resources;component/xaml/Images.xaml" />
<ResourceDictionary Source="Resources;component/xaml/Styles.xaml" />
<ResourceDictionary Source="Resources;component/xaml/Tooltips.xaml" />
</ResourceDictionary.MergedDictionaries>
Resource 專案編譯沒有問題,您在上面看到的代碼中沒有視覺錯誤。
我有一個名為 Buttons 的第二個專案。在 App.xaml 中,我參考了這個 Resource 專案。
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Resources;component/Main.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
我在 Button 專案中參考了 Resources.dll。Visual Studio 在 ResourceDictionary 陳述句下顯示錯誤行;然而,專案編譯。
當我運行 Button.exe 時,出現錯誤“無法找到資源‘resources;component/xaml/buttons.xaml’。”
我的 ResourceDictionary 陳述句與我在其他專案中成功完成的陳述句相匹配。假設我在 Button 專案的 App.xaml 中撰寫的內容是正確的,我應該在 Resources 的 Main.xaml 檔案中做什么不同的事情?
提前致謝。
uj5u.com熱心網友回復:
好吧,我想通了。我將記錄如何執行此操作,以防其他人遇到此問題。
在我的一個名為 Resources 的程式集中,我在專案根目錄中有一個 Main.xaml 檔案。我有一個名為“xaml”的子目錄,其中有幾個 xaml 檔案。我的錯誤在于目錄“xaml”的前導反斜杠。
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="xaml/Buttons.xaml" />
<ResourceDictionary Source="xaml/Images.xaml" />
<ResourceDictionary Source="xaml/Styles.xaml" />
<ResourceDictionary Source="xaml/Tooltips.xaml" />
</ResourceDictionary.MergedDictionaries>
然后,在另一個名為 Buttons 的專案中,在 App.xaml 檔案中,我參考了 MergedDictionaries 部分中的 Main.xaml 檔案。
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Resources;component/Main.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
一旦我更正了主檔案中的參考,一切正常。
因此,這允許我將我的資源拆分為單獨的 xaml 檔案并在其他程式集中參考它們。哇!
uj5u.com熱心網友回復:
此外,為了完整性,對于每個 xaml 檔案(包括 main.xaml),將 Build Action 設定為 Page(右鍵單擊 xaml 檔案并選擇 Properties)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/321800.html
