gpt4 book ai didi

c# - 如何设置 ListBoxItem 的样式

转载 作者:行者123 更新时间:2023-11-30 16:48:27 25 4
gpt4 key购买 nike

<Border Grid.Row="1" Padding="15" Margin="15" BorderBrush="LightBlue" Background="AliceBlue" BorderThickness="1">
<ListBox ItemsSource="{Binding Configs}">
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="Background" Value="Transparent" />
<Setter Property="Focusable" Value="False" />
<Setter Property="BorderThickness" Value="0" />
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<view:Config />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Border>

这是我用 XAML 编写的代码。但是,它似乎没有任何影响。

关于 SO 的帖子有很多类似的问题,但他们的所有回复都是“使用 ListBox.ItemContainerStyle”,我已经这样做了:S 例如 There is no ListBox.SelectionMode="None", is there another way to disable selection in a listbox?WPF, XAML: How to style a ListBoxItem using binding on property of ListBox ItemsSource object?

我期望的是没有背景、没有边框并且该项目不可聚焦。

我做错了什么?

最佳答案

重新定义 ListBoxItemControlTemplate。下面的示例代码使用了 redish 颜色来说明这一点,但您可以将其替换为 Transparent:

<Window x:Class="WpfApplication235.MainWindow"
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"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:local="clr-namespace:WpfApplication235"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>

<x:Array x:Key="SampleData" Type="{x:Type sys:String}">
<sys:String>Item 1</sys:String>
<sys:String>Item 2</sys:String>
<sys:String>Item 3</sys:String>
<sys:String>Item 4</sys:String>
<sys:String>Item 5</sys:String>
</x:Array>

<Style x:Key="ListBoxItemStyle1" TargetType="{x:Type ListBoxItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<TextBlock Text="{Binding}">
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#1FFF0000"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

</Window.Resources>

<Grid>

<ListBox x:Name="listBox" ItemsSource="{StaticResource SampleData}"
ItemContainerStyle="{StaticResource ListBoxItemStyle1}"
Height="150" Margin="0" Width="250"/>

</Grid>

enter image description here

并根据需要使用透明背景,没有焦点,没有突出显示:

enter image description here

关于c# - 如何设置 ListBoxItem 的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38148146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com