2012-01-18 48 views
2

我有一個應用程序使用ResourceDictionary來設置樣式,它很好地完成。但是,字體有點小,我想改變它,但資源目錄來自.dll,所以我不能編輯它。ResourceDictionary和樣式沒有跨應用程序合併

正如你會注意到我剛剛開始與字典。

我以爲我可以用MergedDictionaries覆蓋此,只是添加一個樣式來覆蓋它:

<Application x:Class="IDIUserInterface.App" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
StartupUri="Windows/WindowMain.xaml" > 
<Application.Resources> 

    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="/ReuxablesLegacy;component/mercury.xaml" /> 
     </ResourceDictionary.MergedDictionaries> 
     <Style TargetType="Window"> 
      <Setter Property="FontSize" Value="12" /> 
      <Setter Property="FontFamily" Value="Arial" /> 
     </Style> 
     <Style TargetType="Page"> 
      <Setter Property="FontSize" Value="12" /> 
      <Setter Property="FontFamily" Value="Arial" /> 
     </Style> 
    </ResourceDictionary> 

</Application.Resources> 

讓我震驚這一實際工作,但只有在設計視圖。只要我編譯代碼並運行應用程序,字體就會恢復到原來的大小。

這是有原因還是我做錯了什麼?

由於提前, SumGuy

回答

1

如果有興趣我解決了它:

<Application.Resources> 

    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="/ReuxablesLegacy;component/mercury.xaml" /> 
      <ResourceDictionary> 

       <Style x:Key="MyWindowStyle" TargetType="Window"> 
        <Setter Property="FontSize" Value="12" /> 
        <Setter Property="FontFamily" Value="Arial" /> 
        <Setter Property="Background" Value="WhiteSmoke" /> 
       </Style> 

       <Style x:Key="MyPageStyle" TargetType="Page"> 
        <Setter Property="FontSize" Value="12" /> 
        <Setter Property="FontFamily" Value="Arial" /> 
        <Setter Property="Background" Value="WhiteSmoke" /> 
       </Style> 
      </ResourceDictionary> 
     </ResourceDictionary.MergedDictionaries> 

    </ResourceDictionary> 

</Application.Resources> 

,然後添加

Style="{StaticResource MyWindowStyle}" 

...到窗口標題(或替代頁面頁)

0

更改如下:

<Style TargetType="Window"> 
<Style TargetType="Page"> 

<Style TargetType="{x:Type Window}"> 
<Style TargetType="{x:Type Page}"> 
+0

可悲的是這並沒有解決這個問題。有什麼我需要添加到窗口或頁面標題來激活它? – SumGuy 2012-02-08 13:37:57

+0

你到底想要達到什麼目的? – MyKuLLSKI 2012-02-08 15:30:30

+0

真的很簡單。我只想覆蓋包含樣式的資源目錄(它來自.dll,因此我無法直接更改)。所以不是使用say,fontsize,而是使用我指定的資源目錄。 我可以在Window/Page init中做到這一點,但這意味着改變每一個。 – SumGuy 2012-02-08 16:15:56

相關問題