2012-02-23 60 views
0

我在解析外部程序集中的資源時遇到了一些問題。在運行時不能從外部程序集解析的默認樣式

我有一個項目叫做主題Styles.xaml文件,我有一個已被宣佈爲默認按鈕樣式如下:

<Style TargetType="{x:Type Button}" x:Key="{x:Type Button}"> 
    <!--Setters here--> 
    </Style> 

然後在一個單獨的WPF項目(但在同一個解決方案)我在App.xaml文件如下:

<ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary 
     Source="/Theme;component/Styles.xaml" /> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 

然後在主窗口中,我宣佈一個默認的按鈕,沒有重視它,像這樣的風格:

<Button Width="100" Height="100" /> 

在設計視圖中,該按鈕顯示爲從Styles.xaml文件中選取樣式,但是當我構建並運行該項目時,Button只是默認爲標準按鈕樣式。

我檢查了Theme.dll文件已被複制到WPF構建目錄(它有),所以我不知道爲什麼會發生這種情況。

有趣的是,如果我定義的按鈕樣式像這樣

<Style TargetType="{x:Type Button}" x:Key="MyStyle"> 

然後直接引用它的按鈕中的其他項目像這樣

<Button Style={StaticResource MyStyle} Width="100" Height="100" /> 

它拿起在設計視圖樣式並在項目建立和執行時正常工作。

任何想法?任何幫助將是偉大的!

克里斯

回答

1

您可能需要使用,你引用的XAML文件的完整pack URI,即以siteoforigin如果你不引用嵌入的資源。

+0

這可能是我缺乏理解,但是如果我使用像這樣的packuri:pack:// siteoforigin:,,,/Theme; component/Styles.xaml我得到異常「檢查目錄是否存在於指定位置」。主題組件位於WPF應用程序的根目錄中,所以我不確定爲什麼這不起作用。感謝您的回覆! – lookitskris 2012-02-23 12:16:54

+0

忽略以前的評論,得到它的工作。謝謝 – lookitskris 2012-02-23 12:31:39

相關問題