У меня есть базовый TreeView в окне, которое имеет стиль, применяемый к ресурсу в dll. DLL стиля способна переключаться между двумя стилями. Когда у меня нет стиля TreeView в dll, я могу расширить TreeViewItems, сменить стили (других элементов управления), а TreeViewItems останется расширенным. Однако, как только я добавлю стиль для TreeView, TreeViewItems, которые были расширены, рушится сразу же после переключения стиля.Шаблон шаблона стиля WPF TreeView IsExpanded на переключателе стиля
Все причудливые анимации и стилизация TreeViewItem были удалены, чтобы отследить проблему. Оставшийся стиль просто:
<Style x:Key="{x:Type TreeView}" TargetType="{x:Type TreeView}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TreeView">
<Border Name="Border"
Background="Transparent"
BorderThickness="1"
CornerRadius="1">
<ItemsPresenter />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Любые предложения были бы весьма благодарны. У меня кончились идеи!
Благодарим за отзыв. У меня есть только один шаблон для TreeView (как показано в моем вопросе), который не содержит триггеров и минимального стиля. Я ранее разработал расширитель таким же образом, который также имеет свойство IsExpanded и не имел этой проблемы. Это ограничение самого TreeView? –
Просто постарайтесь не сбросить ItemsPresenter, потому что эта плохая задница несет ответственность за представление предметов, и если вы ее убьете, вы потеряете все :) –
Является ли элемент презентатора подразумевающим использование по-другому для кода выше? Я ничего не делаю с этим, кроме того, что он находится в шаблоне стиля. –