首页 > 其他分享 >2023-8-1 WPF的ItemsControl容器(DataGrid,ListBox,ListView等)可以实现的隔行样式修改

2023-8-1 WPF的ItemsControl容器(DataGrid,ListBox,ListView等)可以实现的隔行样式修改

时间:2023-08-01 15:46:10浏览次数:41  
标签:样式 ItemsControl DataGrid 隔行 WPF ListView ListBox

实现的隔行样式修改

【作者】长生
微软官方文档详细介绍

实现方式

如果需要让你的wpf表格或者间隔样式实现下列效果可以使用AlternationCount
image
首先添加一个DataGrid,并使用AlternatingRowBackground设置奇数行的背景色为紫色

<DataGrid AlternatingRowBackground="Purple"></DataGrid>

然后在DataGrid里设置RowStyle的具体样式

<DataGrid>
	<DataGrid.RowStyle>
		<Style TargetType="DataGridRow">
		<Setter Property="Background" Value="LightGray"/>//设置复数行样式
		<Style.Triggers>
			<Trigger Property="ItemsControl.AlternationCount" Value="1">
				<Setter Property="Background" Value="Purple"/>
			</Trigger>//这一块是三行样式的设计,可以参考下文
		</Style.Triggers>
		</Style>
	</DataGrid.RowStyle>
</DataGrid>

三行不同颜色的设计

<Grid>
  <Grid.Resources>
    <Style x:Key="alternatingWithTriggers" TargetType="{x:Type ListBoxItem}">
      <Setter Property="Background" Value="Blue"/>//第一行
      <Setter Property="Foreground" Value="White"/>
      <Style.Triggers>
        <Trigger Property="ListBox.AlternationIndex" Value="1">//第二行
          <Setter Property="Background" Value="CornflowerBlue"/>
          <Setter Property="Foreground" Value="Black"/>
        </Trigger>
        <Trigger Property="ListBox.AlternationIndex" Value="2">//第三行
          <Setter Property="Background" Value="LightBlue"/>
          <Setter Property="Foreground" Value="Navy"/>
        </Trigger>
      </Style.Triggers>
    </Style>
  </Grid.Resources>
  <ListBox AlternationCount="3" ItemsSource="{StaticResource data}" 
           ItemContainerStyle="{StaticResource alternatingWithTriggers}">
  </ListBox>
</Grid>

结尾

感谢您的阅读,如果有收获麻烦点个关注!⭐
其他平台
公众号:【长生小殿】
B站:【月长生殿主】

标签:样式,ItemsControl,DataGrid,隔行,WPF,ListView,ListBox
From: https://www.cnblogs.com/WH5212/p/17596651.html

相关文章

  • 关键字: datagridview 属性 说明
    关键字:datagridview属性说明①取得或者修改当前单元格的内容②设定单元格只读③不显示最下面的新行④判断新增行⑤行的用户删除操作的自定义⑥行、列的隐藏和删除⑦禁止列或者行的Resize⑧列宽和行高以及列头的高度和行头的宽度的自......
  • 解决 datetime数据在DataGridView里不显示秒的问题
    1.选择要编辑的列》外观》DefaultCellStyle2.CellStyle生成器》行为》Format》三个点3.选择日期时间》选择需要的时间格式 ......
  • c#、winfrom在一个窗体中鼠标双击datagridview1选中某行,将其选中的行的所有数据在data
    效果展示:代码逻辑:首先在datagridview1中按条件查询数据,然后在datagridview2在查询和datagridview1中一样的Select语句,只不过在datagridview2的查询语句中需添加where条件获取datagridview1在选中行的id,在datagridview2显示就好了代码:单据筛选按钮 privatevoidbutton1_Click......
  • Datagridview 分页
       usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;namespaceLabSys_demo{publicpartialclassForm1:Form{......
  • winform中DataGridview控件
    privatevoidForm1_Load(objectsender,EventArgse){DataTabledt=newDataTable();DataColumnc1=newDataColumn("序号",typeof(string));DataColumnc2=newDataColumn("名称",typeof(string));......
  • C#DataGridView两个数据表同步滚动
    一、同步滚动SumTable为表1,CycleTable为表2两个表都添加Scroll滚动事件privatevoidSumTable_Scroll(objectsender,ScrollEventArgse)//滚动同步{CycleTable.FirstDisplayedScrollingRowIndex=SumTable.FirstDisplayedScrollingRowIndex;......
  • WPF-Datagrid常用
    列标题居中和单元格内容居中 <!--DataGrid列标题居中方法--><Stylex:Key="ColumnHeaderStyle"TargetType="DataGridColumnHeader"><SetterProperty="HorizontalContentAlignment"Value="Center"/&......
  • 将datagridview中查到的数据中部分字段批量更新到数据库中
    在项目只,我们经常会遇到一个需求,就是筛选查询到部分数据后,对查到的datagridview中数据部分字段做一下数据的批量的修改或添加操作比如:这是我查询的数据然后点击保存需要添加箭头所指的数据  代码如下://打开链接SqlConnectionconn=newSqlC......
  • WinForm绑定DataGridView
    使用SplitContainer控件将屏幕分成两部分。方式一:直接使用绑定数据源就可以用EF的形式绑定数据源了。 可以添加列和编辑列方式二:采用手动连接MySQL数据库绑定数据源的方式。https://blog.csdn.net/qq_43026206/article/details/86706431stringsql="selectidas......
  • DataGrid实现Header与数据的绑定
    一.xaml代码:    注意:列的数据可以绑定,但Hearder的绑定要使用HearderTemplate中的TextBlock元素来实现,切记。<Windowx:Class="AirtightTest.TestView"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.m......