内容仅在给定时间显示在单个元素中

Content Only being shown in a Single element at a given time

我正在尝试在特定的滚动查看器中显示一堆带有图标的名称。 有 2 种主要类型的图标需要显示,但是尽管两种类型的 pf 图标都令人厌恶地显示,但一次只有一个元素获得此图标。

这是一个最小的示例,用于验证具有 x:Shared="False" 的资源可用于呈现同一图标的多次出现,而对于共享资源(默认),仅呈现最后一次出现:

<Window
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800"
        x:Class="Application1.MainWindow">
    <Window.Resources>
        <Canvas x:Key="FileIconShared" Width="20" Height="20">
            <Path Stroke="Black" Fill="White"  Data="M20,4L4,4A2,2,0,0,0,2,6L2,18A2,2,0,0,0,4,20L20,20A2,2,0,0,0,22,18L22,6A2,2,0,0,0,20,4 M20,18L4,18 4,8 12,13 20,8 20,18 M20,6L12,11 4,6 4,6 20,6 20,6z">
            </Path>
        </Canvas>
        <Canvas x:Key="FileIconNotShared" x:Shared="False" Width="20" Height="20">
            <Path Stroke="Black" Fill="White"  Data="M20,4L4,4A2,2,0,0,0,2,6L2,18A2,2,0,0,0,4,20L20,20A2,2,0,0,0,22,18L22,6A2,2,0,0,0,20,4 M20,18L4,18 4,8 12,13 20,8 20,18 M20,6L12,11 4,6 4,6 20,6 20,6z">
            </Path>
        </Canvas>
    </Window.Resources>
    <Grid>
        <StackPanel HorizontalAlignment="Left" Width="100">
            <TextBlock>Shared 1</TextBlock>
            <ContentControl Content="{StaticResource FileIconShared}"/>
            <TextBlock>Shared 2</TextBlock>
            <ContentControl Content="{StaticResource FileIconShared}"/>
            <TextBlock>Not Shared 1</TextBlock>
            <ContentControl Content="{StaticResource FileIconNotShared}"/>
            <TextBlock>Not Shared 2</TextBlock>
            <ContentControl Content="{StaticResource FileIconNotShared}"/>
        </StackPanel>
    </Grid>
</Window>

效果:第一个图标不见了,第二到第四个显示出来了。

我不能说你将如何将它应用到你的项目中,因为关于你的资源定义的确切位置以及你的数据模板的配置方式的信息很多。