Как применить глобальный стиль к дереву wpf в App.xaml - PullRequest
1 голос
/ 13 октября 2010

Я нашел следующий код для отображения выбранного элемента в виде дерева, когда фокус исчез, но у меня возникли проблемы с перемещением кода в 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, который является другим (родительским) пространством имен?Как только я получу его, используя стиль, каков синтаксис для установки других свойств?

1 Ответ

0 голосов
/ 29 апреля 2011

Проект изначально был настроен как библиотека классов. Я предполагаю, что где-то в файле проекта он говорит WPF, нужно ли искать в App.xaml, и если это ClassLibrary, он никогда не будет там смотреть, если вы специально не скажете ему искать в этом файле (я произвел слияние со словарем это похоже на работу).

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

...