wpf DataGrid悦目标样式

[复制链接]
发表于 2025-12-10 19:18:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
  1. <Window x:Class="UITest.MainWindow"
  2.         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3.         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4.         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  5.         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  6.         xmlns:local="clr-namespace:UITest"
  7.         mc:Ignorable="d"
  8.         Title="MainWindow" Height="450" Width="800">
  9.     <Window.Resources>
  10.         <Style x:Key="DataGridStyle" TargetType="DataGrid">
  11.             <Setter Property="ColumnHeaderStyle" Value="{DynamicResource ColumnHeaderStyle}"></Setter>
  12.             <Setter Property="CellStyle" Value="{DynamicResource CellStyle}"></Setter>
  13.             <Setter Property="RowStyle" Value="{DynamicResource RowStyle}"></Setter>
  14.             <Setter Property="Background" Value="White"></Setter>
  15.             <Setter Property="EnableRowVirtualization" Value="True"></Setter>
  16.             <Setter Property="GridLinesVisibility" Value="None"></Setter>
  17.             <Setter Property="CanUserAddRows" Value="False"></Setter>
  18.             <Setter Property="AutoGenerateColumns" Value="False"></Setter>
  19.             <Setter Property="IsEnabled" Value="True"></Setter>
  20.             <Setter Property="HeadersVisibility" Value="Column"></Setter>
  21.         </Style>
  22.         <Style x:Key="ColumnHeaderStyle" TargetType="DataGridColumnHeader">
  23.             <Setter Property="Height" Value="35"></Setter>
  24.             <Setter Property="Background" Value="#F2F2F2"></Setter>
  25.             <Setter Property="BorderThickness" Value="0,0,1,1"></Setter>
  26.             <Setter Property="BorderBrush" Value="#CBCBCB"></Setter>
  27.             <Setter Property="VerticalContentAlignment" Value="Center"></Setter>
  28.             <Setter Property="HorizontalContentAlignment" Value="Center"></Setter>
  29.         </Style>
  30.         <Style x:Key="RowStyle" TargetType="DataGridRow">
  31.             <Setter Property="Cursor" Value="Hand"></Setter>
  32.             <Setter Property="BorderBrush" Value="red"/>
  33.             <Setter Property="BorderThickness" Value="0,0,0,1"/>
  34.             <Style.Triggers>
  35.                 <Trigger Property="IsMouseOver" Value="true">
  36.                     <Setter Property="Background" Value="#F2F2F2"/>
  37.                 </Trigger>
  38.                 <Trigger Property="IsSelected" Value="True">
  39.                     <Setter Property="Background"  Value="#CBCBCB" />
  40.                 </Trigger>
  41.             </Style.Triggers>
  42.         </Style>
  43.         <Style x:Key="CellStyle" TargetType="DataGridCell">
  44.             <Setter Property="Height" Value="35"></Setter>
  45.             <Setter Property="FontSize" Value="13"></Setter>
  46.             <Setter Property="Template">
  47.                 <Setter.Value>
  48.                     <ControlTemplate TargetType="DataGridCell">
  49.                         <Border x:Name="Bg" Background="Transparent" BorderThickness="0" UseLayoutRounding="True" BorderBrush="#FFCBCBCB">
  50.                             <ContentPresenter HorizontalAlignment="Center"  VerticalAlignment="Center" />
  51.                         </Border>
  52.                     </ControlTemplate>
  53.                 </Setter.Value>
  54.             </Setter>
  55.         </Style>
  56.     </Window.Resources>
  57.     <Grid>
  58.         <DataGrid x:Name="myDataGrid" AutoGenerateColumns="False" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Style="{StaticResource DataGridStyle}" Margin="5">
  59.             <DataGrid.Columns>
  60.                 <DataGridTextColumn Header="ID" Binding="{Binding Id}" Width="80"/>
  61.                 <DataGridCheckBoxColumn Header="Name" Binding="{Binding Name}" Width="120"/>
  62.                 <DataGridComboBoxColumn Header="Age" SelectedItemBinding="{Binding Age}" Width="200"/>
  63.                 <DataGridTemplateColumn Header="Actions" Width="80">
  64.                     <DataGridTemplateColumn.CellTemplate>
  65.                         <DataTemplate>
  66.                             <Button Content="Edit" Command="{Binding EditCommand}" />
  67.                         </DataTemplate>
  68.                     </DataGridTemplateColumn.CellTemplate>
  69.                 </DataGridTemplateColumn>
  70.             </DataGrid.Columns>
  71.         </DataGrid>
  72.     </Grid>
  73. </Window>
复制代码
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Net;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using System.Windows;
  9. using System.Windows.Controls;
  10. using System.Windows.Data;
  11. using System.Windows.Documents;
  12. using System.Windows.Forms;
  13. using System.Windows.Input;
  14. using System.Windows.Media;
  15. using System.Windows.Media.Imaging;
  16. using System.Windows.Navigation;
  17. using System.Windows.Shapes;
  18. namespace UITest
  19. {
  20.     public partial class MainWindow : Window
  21.     {
  22.         public MainWindow()
  23.         {
  24.             InitializeComponent();
  25.             // 创建数据源
  26.             var data = new List<Person>
  27.         {
  28.             new Person { Id = 1, Name = "Alice", Age = 25 },
  29.             new Person { Id = 2, Name = "Bob", Age = 30 },
  30.             new Person { Id = 3, Name = "Charlie", Age = 35 }
  31.         };
  32.             // 绑定数据到 DataGrid
  33.             myDataGrid.ItemsSource = data;
  34.         }
  35.         public class Person
  36.         {
  37.             public int Id { get; set; }
  38.             public string Name { get; set; }
  39.             public int Age { get; set; }
  40.         }
  41.     }
  42. }
复制代码
 

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表