2017-02-17 94 views
-1

我試圖根據我的要求覆蓋Material Design for Xaml ToolKit的樣式,以下是我在閱讀關於覆蓋github頁面上的關於重寫的文章後提出的app.xaml中的xaml圖書館,但它似乎沒有工作,我沒有得到爲什麼,因爲我在WPF應用程序的工作沒有太多的經驗,這裏是我試過的代碼:使用資源字典覆蓋特定樣式屬性

<Color x:Key="DarkBlueColor">#00479D</Color> 
<FontFamily x:Key="MicrosoftYaHei">Microsoft YaHei</FontFamily> 
<SolidColorBrush x:Key="WindowBrush" Color="#00479D"/> 

<Style x:Key="WindowStyle" 
     x:Name="WindowStyle" 
     BasedOn="{StaticResource MaterialDesignPaper}" 
     TargetType="{x:Type Window}"> 
    <Setter Property="Background" Value="{DynamicResource WindowBrush}"></Setter> 
</Style> 

對於作爲時間來熟悉我很只是試圖改變窗口的背景,這裏是從MainWindow.xaml代碼:

<Window x:Class="WPFApplication.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:local="clr-namespace:XCMG.CarMan2" 
     mc:Ignorable="d" 
     Title="MainWindow" Height="350" Width="525" 
     Style="{StaticResource WindowStyle}" 
     xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"> 
<Grid> 

</Grid> 
</Window> 

當運行添加上述代碼之後該應用程序,它拋出異常說:

無法轉換類型的對象「System.Windows.Media.SolidColorBrush」爲類型「系統。 Windows.Style」。

回答

1

「MaterialDesignPaper」是SolidColorBrush,你不能在Brush基地Window風格。

取出BasedOn屬性和x:NameStyle

<Style x:Key="WindowStyle" 
     TargetType="{x:Type Window}"> 
    <Setter Property="Background" Value="{DynamicResource WindowBrush}"></Setter> 
</Style> 

,但我想重寫MaterialDesignBrush背景

定義一個新的Brush資源使用相同的密鑰,那麼:

<SolidColorBrush x:Key="MaterialDesignPaper" Color="#00479D"/> 
+0

但我想覆蓋MaterialDesignBrush BackGround –

+0

然後用相同的鍵定義一個新的畫筆資源。看到我編輯的答案。 – mm8

+0

它是否會覆蓋現有的風格的顏色屬性與此鍵在另一個DLL? –