Как применить глобальный стиль к WPF Treeview в app.xaml
-
29-09-2019 - |
Вопрос
Я нашел следующий код для отображения выбранного элемента в Treeview, когда Focus остается, но у меня возникли проблемы с перемещением кода в App.xaml, чтобы любой UserControl мог его использовать.
Это делает то, что я хочу
<TreeView x:Name="trviewArchives" Width="141" Height="154" Canvas.Left="20" Canvas.Top="167" Background="{x:Null}" BorderBrush="#FF081827" BorderThickness="0">
<TreeView.Resources>
<TreeViewItem x:Key="bold" FontWeight="Bold" />
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Peru"/>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black"/>
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Peru"/>
</TreeView.Resources>
Но я не могу понять, как сделать из него стиль. Я попробовал следующее, что швы синтаксически правильно
<Style x:Key="TreeStyle" TargetType="{x:Type TreeView}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TreeViewItem">
<TreeViewItem>
<Setter x:Name="bold" Property="FontWeight" Value="Bold" />
</TreeViewItem>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
И в UserControl
<TreeView x:Name="trviewArchives" Width="141" Height="154" Canvas.Left="20" Canvas.Top="167" Background="{x:Null}" Style="{DynamicResource ResourceKey=TreeStyle}"
BorderBrush="#FF081827" BorderThickness="0" >
В какой -то момент код USERCONTROL распознал этот стиль, но в настоящее время его показывающий «ресурс Treestyle не может быть разрешен».
Что я делаю не так?
Нужно ли мне охватить Treestyle, так как он в app.xaml, что является другим (родительским) пространством имен? Как только я получу его, используя стиль, каков синтаксис для установки других свойств?
Решение
Первоначально проект был настроен как библиотека классов. Где -то в файле проекта, я полагаю, он сообщает WPF, смотреть ли вы в App.xaml, и если это классная библиотека, она никогда не будет смотреть там, если вы специально не скажете ему посмотреть в этом файле (я сделал слияние в словаре это, кажется, работает).
Я понял это, когда вспомнил, что это была библиотека классов, поэтому я скопировал код в новый проект, и все было хорошо.