2010-01-14 53 views
3

我在應用程序程序集中定義了一個WPF用戶控件。我試圖根據另一個(皮膚或主題)程序集中的樣式來設置用戶控件的樣式。我不希望包含所有樣式的resourcedictionary的主題/外觀程序集引用應用程序程序集。有沒有辦法做到這一點?例如。從另一個程序集設計WPF中的UserControl

WPFApplication大會

MyUserControl.xaml < - WPF用戶控件

主題大會

MyStyles.xaml < - WPF資源字典

我以爲我可以使用

<Style x:Key="MyStyle"> 
    <Setter Property="Background" Value="Red" /> 
</Style> 

在MyStyles.xaml ResourceDictionary中,並使用:

<l:MyUserControl Name="control" Style="{StaticResource MyStyle}" /> 

中,在WPFApplication組件使用MyUserControl.xaml

但是任何窗口,我寧願爲目標的MyStyles.xaml的自定義用戶控件資源代碼:

<Style TargetType="{x:Type l:MyUserControl}" x:Key="MyStyle"> 
     <Setter Property="Background" Value="Red" /> 
    </Style> 

這可能嗎?

回答

1

是的,你可以做到這一點。 Check this SO post我在哪裏顯示如何以編程方式執行此操作。我是用ControlTemplates來做的,但是同樣的事情也適用於Styles。

要做到這一點聲明可能會更簡單,您可能需要以編程方式合併您的資源庫,在xaml中聲明正確的StaticResources和命名空間,然後引用所需的樣式/模板。

相關問題