繁体   English   中英

如何在App.xaml中将全局样式应用于wpf树视图

[英]How to apply a global style to a wpf treeview in App.xaml

我发现以下代码在焦点离开时在树状视图中显示所选项目,但是我无法将代码移至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>

并在用户控件中

<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中查找,如果它是ClassLibrary,它将永远不会出现在其中,除非您明确告诉它要在该文件中查找(我做了字典合并)似乎有效)。

当我想起它以前是一个类库时,我发现了这一点,所以我将代码复制到了一个新项目中,一切都很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM