如何向ItemsControl中的项添加边框



我正试图为items控件中的每个项设置一个边框。以下是我的XAML代码。但这行不通。

<ItemsControl.ItemContainerStyle>
    <Style>
        <Setter Property="Control.BorderThickness" Value="5" />
        <Setter Property="Control.BorderBrush" Value="Black" />
    </Style>
</ItemsControl.ItemContainerStyle>

ItemsControl中的容器是一个ContentPresenter,它是而不是控件,这种样式不会起任何作用。您可以创建一个包含BorderItemsTemplate

或者,您可以更改ItemContainerStyle:中的ContentTemplate

<ItemsControl.ItemContainerStyle>
    <Style TargetType="ContentPresenter">
        <Setter Property="ContentTemplate">
            <Setter.Value>
                <DataTemplate>
                    <Border BorderBrush="Black" BorderThickness="5">
                        <ContentPresenter Content="{Binding}"/>
                    </Border>
                </DataTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</ItemsControl.ItemContainerStyle>

(注意:这是一个真正的替代方案,因为它做的事情完全相同,所以我会使用ItemTemplate,因为它不那么冗长,为您保存了三个标签(StyleSetterSetter.Value))

参见关于BorderThickness[BorderBrush][1]:的备注

此属性仅影响其模板使用BorderThickness属性作为参数的控件。对于其他控件,此属性没有影响。

此属性仅影响其模板使用BorderBrush属性作为参数的控件。对于其他控件,此属性没有影响。

所以你实际上需要这样一个控件,例如Border,你可以在其中包装你需要显示的任何内容。

相关内容

  • 没有找到相关文章

最新更新