使用WPF 制作一个漂亮的datagrid
时间: 2024-06-09 07:10:18 浏览: 12
要创建一个漂亮的 WPF DataGrid,需要进行以下步骤:
1. 通过 NuGet 安装 MaterialDesignThemes 库。这个库提供了一些现成的控件和样式,可以使 WPF 应用程序的外观更加美观。
2. 在 XAML 文件中添加以下命名空间引用:
```xml
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
```
3. 在 Window 或 UserControl 中添加以下属性:
```xml
mc:Ignorable="d"
d:DesignHeight="450"
d:DesignWidth="800"
Background="{DynamicResource MaterialDesignPaper}"
TextElement.Foreground="{DynamicResource MaterialDesignBody}"
TextElement.FontWeight="Regular"
TextElement.FontSize="14"
TextOptions.TextFormattingMode="Ideal"
TextOptions.TextRenderingMode="Auto"
TextOptions.TextHintingMode="Auto"
materialDesign:ThemeAssist.Theme="Light"
materialDesign:ColorZoneAssist.Mode="PrimaryMid"
```
这些属性可以设置 WPF 应用程序的默认样式和主题。
4. 添加 DataGrid 控件:
```xml
<DataGrid materialDesign:DataGridAssist.CellPadding="13"
materialDesign:DataGridAssist.ColumnHeaderPadding="13"
materialDesign:DataGridAssist.ColumnHeaderBackground="White"
materialDesign:DataGridAssist.ColumnHeaderForeground="{DynamicResource MaterialDesignBody}"
materialDesign:DataGridAssist.ColumnHeaderHeight="48"
materialDesign:DataGridAssist.AlternatingRowBackground="White"
materialDesign:DataGridAssist.RowHeight="48"
materialDesign:DataGridAssist.CanUserSortColumns="False"
materialDesign:DataGridAssist.CanUserResizeColumns="True"
materialDesign:DataGridAssist.CanUserResizeRows="False"
materialDesign:DataGridAssist.GridLinesVisibility="None"
ItemsSource="{Binding MyData}">
<DataGrid.Columns>
<DataGridTextColumn Header="ID" Binding="{Binding Id}" />
<DataGridTextColumn Header="Name" Binding="{Binding Name}" />
<DataGridTextColumn Header="Age" Binding="{Binding Age}" />
</DataGrid.Columns>
</DataGrid>
```
这些属性可以设置 DataGrid 控件的样式和绑定数据源。
5. 最后,绑定数据源。可以在代码中创建一个类来表示数据,然后在窗口的代码中创建一个 List 对象,把数据填充到 List 中,最后把 List 对象绑定到 DataGrid 的 ItemsSource 属性上。
```csharp
public class Person {
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
List<Person> myData = new List<Person>();
myData.Add(new Person() { Id = 1, Name = "Tom", Age = 30 });
myData.Add(new Person() { Id = 2, Name = "Jerry", Age = 25 });
myData.Add(new Person() { Id = 3, Name = "Mike", Age = 40 });
DataContext = this;
MyData = myData;
}
public List<Person> MyData { get; set; }
}
```
这样就可以创建一个漂亮的 WPF DataGrid 了。可以根据自己的需要调整样式和布局,使其更加符合自己的需求。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)