如何使用C#和WPF创建自定义ListBoxItem?
我正在学习C#和WPF。现在我想制作一个定制的ListBoxItem。用我自己的风格。包含一些文本块和图像。 我如何做到这一点 我试图从ListBoxItem派生一个类,但这不起作用。 我还使用ControleTemplate创建了一个样式,但我不知道如何更改模板中TextBlock的Text属性如何使用C#和WPF创建自定义ListBoxItem?,c#,wpf,wpf-controls,C#,Wpf,Wpf Controls,我正在学习C#和WPF。现在我想制作一个定制的ListBoxItem。用我自己的风格。包含一些文本块和图像。 我如何做到这一点 我试图从ListBoxItem派生一个类,但这不起作用。 我还使用ControleTemplate创建了一个样式,但我不知道如何更改模板中TextBlock的Text属性 <Style TargetType="ListViewItem"> <Setter Property="Background" Val
<Style TargetType="ListViewItem">
<Setter Property="Background" Value="White"/>
<Setter Property="Height" Value="75"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate x:Name="test" TargetType="{x:Type ListViewItem}">
<Grid Background="{TemplateBinding Background}" Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" Margin="0,2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="25"/>
<RowDefinition Height="25"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackPanel Grid.Column="0" Grid.RowSpan="3" VerticalAlignment="Center" HorizontalAlignment="Center" Width="80" Height="{TemplateBinding Height}">
<StackPanel.Background>
<ImageBrush ImageSource="media/pictures/noImage.png"/>
</StackPanel.Background>
</StackPanel>
<TextBlock x:Name="lbl_Heading" Text="HowToAccessThisProperty" Grid.Column="1" Grid.Row="0" FontSize="14" FontWeight="Bold" VerticalAlignment="Center"/>
<TextBlock Name="lbl_Description" Text="HowToAccessThisProperty" Grid.Column="1" Grid.Row="1" FontSize="12" VerticalAlignment="Center"/>
<TextBlock Name="lbl_FurtherInfo" Text="HowToAccessThisProperty" Grid.Column="1" Grid.Row="2" FontSize="10" VerticalAlignment="Center"/>
<ContentPresenter/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
谢谢:)查看MSDN请更详细地解释您试图对ListView项执行的操作。在WPF中,99%的时间我们通过listview/listbox/的
ItemTemplate
属性(而不是控件的模板)使用ContentTemplate自定义listview/listbox/等项。那些文本块的文本应该来自哪里?是否确实要消除默认的突出显示行为?@EdPlunkett我正在尝试创建一个ListView项目,左侧有一张图片、一个标题和另外两行,其中显示有关该项目的更多信息,双击该项目可以打开该信息。文本和图像都来自SQL server。实际上,我不想消除默认的突出显示行为。你能举一个关于ContentTemplate的简短例子吗?听起来很像ContentTemplate。容易的。现在:如何填充此ListView?你在里面放什么,怎么放?“SQL”不是答案。答案可能是:“我正在将ItemsSource绑定到包含此item类(shows code)的此类(shows code)的集合属性(shows code)”,或者“我正在使用这些列(显示DataTable中每列的名称和类型)将此DataTable分配给代码隐藏中的ItemsSource”。请将此信息添加到您的问题中。在评论中它将是不可读的。谢谢