簡體   English   中英

如何使用“ Themes \\ Generic.xaml”應用自定義控件的默認模板?

[英]How is the default template of a custom control applied with out using “Themes\Generic.xaml ?”

我使用其默認模板創建了一個自定義內容控件。 該模板雖然沒有位於應該位於的“ Themes \\ Generic.xaml”位置。 取而代之的是,我將它放在一個單獨的具有不同名稱的資源字典中。 它與App.xaml資源字典中的其他資源字典合並在一起。

運行代碼不會產生任何錯誤,並且控件是可見的。 我在其他機器上測試了該應用程序,並且代碼運行得很好,我想指出這些機器是開發機器。

然后在客戶端計算機(非開發)上測試應用程序,然后發現一些奇怪的行為。 自定義控件不可見; 它只會在1台3台客戶端計算機上可見。

通過將模板放在“ Themes \\ Generic.xaml”中,我可以解決此問題。

我的問題是,如何無需將模板放在“ Themes \\ Generic.xaml”中就可以工作? 我在Google上進行了搜索,但可以找到任何明確的解釋。

謝謝

要應用您的模板,它們必須存在於Themes \\ Generic.xaml中。 好消息是您可以在這里合並它們,我認為這是一個好習慣,並使您的代碼更整潔。 通常我的generic.xaml僅由這個組成,一個X.Generic.xaml用於您的所有托管。 控件。

主題/Generic.xaml:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
...>
    <!-- Your custom controls split into separate files -->
    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="/YourNamespace;component/Themes/ControlA.Generic.xaml" />
        <ResourceDictionary Source="/YourNamespace;component/Themes/ControlB.Generic.xaml" />
    </ResourceDictionary.MergedDictionaries>
</ResourceDictionary>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM