Привет, я прошу вас о помощи, поскольку я не могу заставить свой стиль BasedOn работать правильно. Вот ситуация:WPF BasedOn Style with Style.Resources
Я свой базовый стиль определен в ResourceDictionary, как это:
Styles.xaml
<Style TargetType="{x:Type TreeView}" x:Key="MyBaseStyle">
<Style.Resources>
<HierarchicalDataTemplate ...>
...
</HierarchicalDataTemplate>
<DataTemplate ...>
...
</DataTemplate>
<Style TargetType="{x:Type TreeViewItem}">
...
</Style>
</Style.Resources>
<!-- This is for test purpose -->
<Setter Property="Background" Value="Red" />
я сливаю этот словарь в мой App.xaml:
App.xaml
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Styles.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
Вот что я делал раньше, что работал отлично, в моем главном окне:
MainWindow.xaml
<TreeView ... Style="{StaticResource MyBaseStyle}" />
Но поскольку у меня есть несколько TreeViews в моем приложении, мне нужно применить к ним MyBaseStyle и добавить DataTrigger для каждого TreeV МЭН. Я попытался это:
MainWindow.xaml
<TreeView ...>
<TreeView.Style>
<Style TargetType="{x:Type TreeView}" BasedOn="{StaticResource MyBaseStyle}">
<Style.Triggers>
<!-- DataTrigger here -->
</Style.Triggers>
</Style>
</TreeView.Style>
</TreeView>
Проблема заключается в том, что HierarchicalDataTemplate в MyBaseStyle не работает. Появляется красный фон MyBaseStyle, и DataTrigger работает отлично, но не шаблон. Кажется, что программа игнорирует стиль. Ресурсы стиля BasedOn?
Я думаю, что это может быть проблема с областью стиля, но как я могу ее решить, не повторяя код для каждого TreeView? Кто-то уже был в этой ситуации и знает причину проблемы?
Благодарим за помощь, Arnaud.
Что делать, если вы переместили 'Style' из' '' в ' –
Хорошая попытка, но все еще не работает :-) –