CheckBox复选框用于勾选或者勾掉某一个选项,在后台代码中表现为一个布尔型值,使用IsChecked=”True”属性设置默认勾选,再没别的属性好用的了
XAMl:
<StackPanel>
<CheckBox Content="Enable feature ABC" Background="AliceBlue" BorderThickness="3"
BorderBrush="CornflowerBlue"></CheckBox>
<CheckBox IsChecked="True">Enable feature XYZ</CheckBox>
<CheckBox>Enable feature WWW</CheckBox>
</StackPanel>
效果:

C#:
public CheckBoxDemo()
{
InitializeComponent();
StackPanel stackPanel = new StackPanel();
CheckBox box = new CheckBox();
box.Content = "Enable feature ABC";
CheckBox box1 = new CheckBox();
box1.IsChecked = true;
box1.Content = "Enable feature XYZ";
CheckBox box2 = new CheckBox();
box2.Content = "Enable feature WWW";
stackPanel.Children.Add(box);
stackPanel.Children.Add(box1);
stackPanel.Children.Add(box2);
this.Content = stackPanel;
}
效果:

ComboBox控件是下拉框列表
XAML:
<ComboBox Width="155" Height="33">
<!--下拉框选项-->
<!--设置默认选中项属性:IsSelected-->
<ComboBoxItem IsSelected="True">ComboBox Item #1</ComboBoxItem>
<ComboBoxItem>ComboBox Item #2</ComboBoxItem>
<ComboBoxItem>ComboBox Item #3</ComboBoxItem>
</ComboBox>
效果:

DataGrid控件是显示表格数据的控件,默认情况下,当设置属性时,DataGrid控件将自动生成列ItemsSource。所生成的列的类型取决于列中数据的类型:
1. 数据类型为String的DataGridTextColumn;
2. 数据类型为Boolean的DataGridCheckColumn;
3. 数据类型为Enum的DataGridComboBoxColumn;
4. 数据类型为Uri的DataGridHyPerlinkColumn
XAML:
<Window x:Class="WpfAppDemo2.DataGridDemo"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:core="clr-namespace:System;assembly=mscorlib"
xmlns:local="clr-namespace:WpfAppDemo2"
Title="DataGridDemo" Height="450" Width="800">
<!--窗口资源:样式、动画、模板等-->
<Window.Resources>
<!--ObjectDataProvider提供了绑定任意.net类型的功能,增加了对成员函数的绑定,提供了更多的异步绑定的功能 。-->
<ObjectDataProvider x:Key="SexEnumKey" MethodName="GetValues" ObjectType="{x:Type core:Enum}">
<ObjectDataProvider.MethodParameters>
<!--C#后台代码的枚举SexEnum-->
<x:Type Type="local:SexEnum"/>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</Window.Resources>
<Grid >
<DataGrid Name="MyDataGrid" ItemsSource="{Binding}" CanUserAddRows="False" AutoGenerateColumns="False">
<DataGrid.Columns>
<!--Binding绑定后台数据源-->
<DataGridTextColumn Header="曾用名" Binding="{Binding FirstName}"/>
<DataGridTextColumn Header="姓名" Binding="{Binding LastName}" />
<DataGridHyperlinkColumn Header="Email" Binding="{Binding Email}" />
<DataGridCheckBoxColumn Header="成员否" Binding="{Binding IsMember}" />
<!--StaticResource 静态资源引用-->
<DataGridComboBoxColumn Header="性别" SelectedItemBinding="{Binding Sex}" ItemsSource="{Binding Source={StaticResource SexEnumKey}}" />
<!--5、模板列:图片-->
<DataGridTemplateColumn Header="操作" MinWidth="50" Width="2*">
<DataGridTemplateColumn.CellTemplate>
<!--数据模板-->
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Height="20" Width="20" Source="/tx/tx 06.jpg" Margin="0,0,10,0"/>
<Image Height="20" Width="20" Source="/tx/tx 07.jpg" Margin="0,0,10,0"/>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<!--模板列:按钮-->
<DataGridTemplateColumn Header="操作" MinWidth="50" Width="2*">
<DataGridTemplateColumn.CellTemplate>
<!--数据模板-->
<DataTemplate>
<WrapPanel Orientation="Horizontal" ItemWidth="100">
<Button Content="修改" Margin="0,0,10,0"/>
<Button Content="删除" Margin="0,0,10,0"/>
</WrapPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
效果:

C#:
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace WpfAppDemo2
{
/// <summary>
/// 枚举
/// </summary>
public enum SexEnum { 男, 女 };
//public enum SexEnum { 男=0, 女=1 };
/// <summary>
/// 2‘构建实体类:顾客
/// </summary>
public class Customer
{
//成员:字段、属性、方法、事件、索引等
public string FirstName { get; set; }
public string LastName { get; set; }
public Uri Email { get; set; }
public bool IsMember { get; set; }
public SexEnum Sex { get; set; }
}
/// <summary>
/// DataGridDemo.xaml 的交互逻辑
/// </summary>
public partial class DataGridDemo : Window
{
//集合
List<Customer> list = new List<Customer>();
public DataGridDemo()
{
InitializeComponent();
//添加数据
list = new List<Customer>()
{
new Customer(){ FirstName="张飒",LastName="李斯",Email= new Uri("https://blog.csdn.net"),IsMember =true,Sex = SexEnum.男},
new Customer(){ FirstName="王舞",LastName="赵茜",Email= new Uri("https://blog.csdn.net"),IsMember =false,Sex = SexEnum.女},
new Customer(){ FirstName="孙武",LastName="杨鸣",Email= new Uri("https://blog.csdn.net"),IsMember =true,Sex = SexEnum.男},
new Customer(){ FirstName="邹章",LastName="廖飞",Email= new Uri("https://blog.csdn.net"),IsMember =false,Sex = SexEnum.男},
};
//设置元素DG1在参与数据绑定时的数据上下文。
MyDataGrid.DataContext = list;
}
}
}
效果:

XAMl:
<StackPanel>
<CheckBox Content="Enable feature ABC" Background="AliceBlue" BorderThickness="3"
BorderBrush="CornflowerBlue"></CheckBox>
<CheckBox IsChecked="True">Enable feature XYZ</CheckBox>
<CheckBox>Enable feature WWW</CheckBox>
</StackPanel>
效果:

C#:
public CheckBoxDemo()
{
InitializeComponent();
StackPanel stackPanel = new StackPanel();
CheckBox box = new CheckBox();
box.Content = "Enable feature ABC";
CheckBox box1 = new CheckBox();
box1.IsChecked = true;
box1.Content = "Enable feature XYZ";
CheckBox box2 = new CheckBox();
box2.Content = "Enable feature WWW";
stackPanel.Children.Add(box);
stackPanel.Children.Add(box1);
stackPanel.Children.Add(box2);
this.Content = stackPanel;
}
效果:

ComboBox控件是下拉框列表
XAML:
<ComboBox Width="155" Height="33">
<!--下拉框选项-->
<!--设置默认选中项属性:IsSelected-->
<ComboBoxItem IsSelected="True">ComboBox Item #1</ComboBoxItem>
<ComboBoxItem>ComboBox Item #2</ComboBoxItem>
<ComboBoxItem>ComboBox Item #3</ComboBoxItem>
</ComboBox>
效果:

DataGrid控件是显示表格数据的控件,默认情况下,当设置属性时,DataGrid控件将自动生成列ItemsSource。所生成的列的类型取决于列中数据的类型:
1. 数据类型为String的DataGridTextColumn;
2. 数据类型为Boolean的DataGridCheckColumn;
3. 数据类型为Enum的DataGridComboBoxColumn;
4. 数据类型为Uri的DataGridHyPerlinkColumn
XAML:
<Window x:Class="WpfAppDemo2.DataGridDemo"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:core="clr-namespace:System;assembly=mscorlib"
xmlns:local="clr-namespace:WpfAppDemo2"
Title="DataGridDemo" Height="450" Width="800">
<!--窗口资源:样式、动画、模板等-->
<Window.Resources>
<!--ObjectDataProvider提供了绑定任意.net类型的功能,增加了对成员函数的绑定,提供了更多的异步绑定的功能 。-->
<ObjectDataProvider x:Key="SexEnumKey" MethodName="GetValues" ObjectType="{x:Type core:Enum}">
<ObjectDataProvider.MethodParameters>
<!--C#后台代码的枚举SexEnum-->
<x:Type Type="local:SexEnum"/>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</Window.Resources>
<Grid >
<DataGrid Name="MyDataGrid" ItemsSource="{Binding}" CanUserAddRows="False" AutoGenerateColumns="False">
<DataGrid.Columns>
<!--Binding绑定后台数据源-->
<DataGridTextColumn Header="曾用名" Binding="{Binding FirstName}"/>
<DataGridTextColumn Header="姓名" Binding="{Binding LastName}" />
<DataGridHyperlinkColumn Header="Email" Binding="{Binding Email}" />
<DataGridCheckBoxColumn Header="成员否" Binding="{Binding IsMember}" />
<!--StaticResource 静态资源引用-->
<DataGridComboBoxColumn Header="性别" SelectedItemBinding="{Binding Sex}" ItemsSource="{Binding Source={StaticResource SexEnumKey}}" />
<!--5、模板列:图片-->
<DataGridTemplateColumn Header="操作" MinWidth="50" Width="2*">
<DataGridTemplateColumn.CellTemplate>
<!--数据模板-->
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Height="20" Width="20" Source="/tx/tx 06.jpg" Margin="0,0,10,0"/>
<Image Height="20" Width="20" Source="/tx/tx 07.jpg" Margin="0,0,10,0"/>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<!--模板列:按钮-->
<DataGridTemplateColumn Header="操作" MinWidth="50" Width="2*">
<DataGridTemplateColumn.CellTemplate>
<!--数据模板-->
<DataTemplate>
<WrapPanel Orientation="Horizontal" ItemWidth="100">
<Button Content="修改" Margin="0,0,10,0"/>
<Button Content="删除" Margin="0,0,10,0"/>
</WrapPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
效果:

C#:
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace WpfAppDemo2
{
/// <summary>
/// 枚举
/// </summary>
public enum SexEnum { 男, 女 };
//public enum SexEnum { 男=0, 女=1 };
/// <summary>
/// 2‘构建实体类:顾客
/// </summary>
public class Customer
{
//成员:字段、属性、方法、事件、索引等
public string FirstName { get; set; }
public string LastName { get; set; }
public Uri Email { get; set; }
public bool IsMember { get; set; }
public SexEnum Sex { get; set; }
}
/// <summary>
/// DataGridDemo.xaml 的交互逻辑
/// </summary>
public partial class DataGridDemo : Window
{
//集合
List<Customer> list = new List<Customer>();
public DataGridDemo()
{
InitializeComponent();
//添加数据
list = new List<Customer>()
{
new Customer(){ FirstName="张飒",LastName="李斯",Email= new Uri("https://blog.csdn.net"),IsMember =true,Sex = SexEnum.男},
new Customer(){ FirstName="王舞",LastName="赵茜",Email= new Uri("https://blog.csdn.net"),IsMember =false,Sex = SexEnum.女},
new Customer(){ FirstName="孙武",LastName="杨鸣",Email= new Uri("https://blog.csdn.net"),IsMember =true,Sex = SexEnum.男},
new Customer(){ FirstName="邹章",LastName="廖飞",Email= new Uri("https://blog.csdn.net"),IsMember =false,Sex = SexEnum.男},
};
//设置元素DG1在参与数据绑定时的数据上下文。
MyDataGrid.DataContext = list;
}
}
}
效果:
