2008-11-27 4 views
2

В настоящее время я принуждая мой WPF приложение, чтобы использовать эту тему LUNA независимо от того, что, с этим XAML кодомКак я наследую/перезаписываю принудительный стиль из темы Windows?

<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="Styles.xaml" /> 
      <ResourceDictionary Source="NavigationCommands.xaml" /> 
      <ResourceDictionary Source="/RibbonControlsLibrary;component/Themes/Office2007Blue.xaml"/> 
      <ResourceDictionary Source="/PresentationFramework.Luna, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;;component/Themes/luna.normalcolor.xaml" /> 
      </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Application.Resources> 

и теперь я хочу, чтобы расширить стиль каждого текстового поля с этой проверкой триггером

<Style TargetType="TextBox"> 
    <Style.Triggers> 
     <Trigger Property="Validation.HasError" Value="true"> 
      <Setter Property="Background" Value="#d3e1f3"></Setter> 
      <Setter Property="ToolTip" 
      Value="{Binding RelativeSource={RelativeSource Self}, 
        Path=(Validation.Errors)[0].ErrorContent}"/> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

, но этот триггер не работает, потому что я заставил тему Luna. (без принудительной темы все работает так, как должно, но не выглядит так, как должно :() Есть ли способ заставить тему Luna и расширить ее стиль? Возможно, над свойством BasedOn?

atm i определенный ключ для стиля в вопросе и добавить его к каждому текстовому полю вручную, что работает, но это не самый красивый путь.

ТИА

ответ

1

Попробуйте

<Style x:Key="{x:Type TextBox}" TargetType="{x:Type TextBox}"> 
+0

что делает не работает, но спасибо в любом случае – 2008-11-28 08:27:49

1

синтаксис BasedOn для Тип выглядит следующим образом:

<Style TargetType="TextBox" BasedOn="{StaticResource {x:Type TextBox}}"> 

НТН

+0

не повезло :( подход ov er свойство basedon не работает. стиль игнорируется. спасибо. – 2008-11-28 10:24:34

0

Вы пытались установить луночка ResourceDictionary первый и свой собственный ResourceDictionary в последний раз? Я могу представить, что тема Luna переопределяет ваш стиль.

<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="/PresentationFramework.Luna, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;;component/Themes/luna.normalcolor.xaml" /> 
      <ResourceDictionary Source="/RibbonControlsLibrary;component/Themes/Office2007Blue.xaml"/> 
      <ResourceDictionary Source="Styles.xaml" /> 
      <ResourceDictionary Source="NavigationCommands.xaml" /> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Application.Resources> 
0

Используйте упомянутый

<Style TargetType="TextBox" BasedOn="{StaticResource {x:Type TextBox}}"> 

, но и убедиться, что ваши словари включены в правильном порядке - сначала те, которые вы основываете свой стиль на

<Application.Resources> 
<ResourceDictionary> 
    <ResourceDictionary.MergedDictionaries> 
     <ResourceDictionary Source="/RibbonControlsLibrary;component/Themes/Office2007Blue.xaml"/> 
     <ResourceDictionary Source="/PresentationFramework.Luna, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;;component/Themes/luna.normalcolor.xaml" /> 

     <ResourceDictionary Source="Styles.xaml" /> 
     <ResourceDictionary Source="NavigationCommands.xaml" /> 
    </ResourceDictionary.MergedDictionaries> 
</ResourceDictionary> 

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

  • Нет связанных вопросов^_^