2015-04-30 4 views
0

Я попытался заменить стиль по умолчанию в моем проекте WPF для всех моих элементов управления. Я создал ResourceDictionary так:Заменить тему WPF по умолчанию Стиль для всех элементов управления

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <Style x:Key="{x:Type Button}" TargetType="{x:Type Button}"> 
     <Setter Property="Background" Value="Black"/> 
    </Style> 
</ResourceDictionary> 

и в моем App.Xaml я писал:

<Application.Resources> 
    <ResourceDictionary > 
     <ResourceDictionary.MergedDictionaries > 
      <ResourceDictionary Source="pack://application:,,,/MYTestTheme;component/Themes/Aero.NormalColor.xaml" /> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Application.Resources> 

Теперь в моем MainWindow.Xaml я создал кнопку, и стиль был на нем. Я хочу новую кнопку MyButton, который унаследовал от кнопки

клети И я хочу, чтобы каждый Button определенного стиля будет на MyButton, когда я помещаю его на моем MainWindow.Xaml, но этого не происходит.

Еще одна важная вещь, которую я не хочу использовать BasedOn.

Я вижу этот код в некоторых blogas:

<Application> 
    <Application.Resources> 
     <ResourceDictionary> 
      <ResourceDictionary.MergedDictionaries> 
       <ResourceDictionary Source=”{ThemeDictionary MyApplication}”/> 
      </ResourceDictionary.MergedDictionaries> 
     </ResourceDictionary> 
    </Application.Resources> 
</Application> 

Но это не сработало !!!

Благодаря

+0

_One более важная вещь Я не хочу использовать BasedOn_, почему бы и нет? – Ben

ответ

0

Дайте ключ имя строки:

<Style x:Key="MyButton" TargetType="{x:Type Button}"> 
    <Setter Property="Background" Value="Black"/> 
</Style> 

и добавить в app.xaml (за пределами Application.Resources блока):

<Style TargetType="{x:Type Button}" BasedOn="{StaticResource MyButton}" /> 
+0

я вижу этот код в некоторых blogas: Но это не сработало !!! –

Смежные вопросы