2011-07-11 26 views
1

我有幾個用戶控件需要在多個Silverlight 4項目之間共享。我正在創建一個新項目,在名爲[appname]的名稱空間中定義這些控件。[UI]Silverlight 4 - 在控件項目中設置用戶控件的設計時間樣式?

我想爲項目中的所有這些控件創建一個新的樣式表,但是我不知道如何引用設計時風格(我可以通過style =「」屬性引用它們,但它們永遠不會被應用)。

我知道應用程序必須將樣式表「註冊」爲其資源的一部分。有沒有辦法從我的UI項目中這樣做?

我錯了我的假設還是有任何解決這些問題的工作?

回答

0

要註冊,請在您的App.xaml <ResourceDictionary>條目中添加<MergedDictionary>標記。這將允許應用程序訪問您的樣式,像這樣:

<Application.Resources> 
    <ResourceDictionary> 
    <ResourceDictionary.MergedDictionaries> 
     <ResourceDictionary Source="YourResourceFile.xaml"/> 
    </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Application.Resources> 

一旦被註冊,樣式=「」屬性應該可行,但如果沒有,職位的代碼。這可能是XAML中的錯誤。

+0

嗨@CamronBute,這裏面的應用程序的工作原理,但在當我建立一個單獨的項目[APPNAME]中的控件設計時間[UI]怎麼辦我在設計時參考樣式表? – bleepzter

+0

我有點困惑......您的樣式表是在UI項目還是不同的項目中? – CamronBute

+0

樣式表在控件項目中。問題在於我無法在設計時看到發生了什麼。樣式從不應用。如果我通過MergedDictionaries選項註冊樣式表,那就意味着我只能在設計時看到控件在應用程序項目本身中的樣子,而不是在定義它們的控件項目的設計時間。 – bleepzter

0

圍繞樣式的silverlight術語有點混亂。這聽起來像是當你說樣式表時,你的意思是模板。如果你想持續地在控件上設置公共屬性(例如FontSize,Background等),你會想要使用一種風格。但是如果你想改變控件的佈局方式,你將需要設置一個新的控件模板。修改控件模板對於自定義控件來說功能更強大,但也可能會很痛苦,因爲據我所知,您只能通過XAML編輯模板。如果您使用Expression Blend,我認爲您可以編輯所見即所得模板。

的樣式和模板之間的差異概述: http://msdn.microsoft.com/en-us/library/cc295273.aspx

相關問題