1.Textbox 和 PasswordBox
Textbox 属性:Text
PasswordBox属性:Password
if (TbAdmin.Text == "admin" && PwdPassword.Password =="asuna")
{
MessageBox.Show("登陆成功");
}
else
{
MessageBox.Show("登录失败,请从新输入");
}
2.CheckBox 与可空类型
如何定义可空类型: int? bool?
可空类型的用处很多 不少控件也是此种属性。
CheckBox的是否选中:
if ((bool)CBbox.IsChecked)
{
MessageBox.Show("选中了");
}
3.四个控件的使用
RadioButton:常用属性GroupName用来确定radioButton所属群体。
DataPicker:选择日期控件。 datePicker1.SelectedDate = DateTime.Today;
Image:常用属性:Source
ProgressBar:
progressBar1.Value += 10;
if (progressBar1.Value >= 60)
{
progressBar1.Foreground = Brushes.Red;
}
4.StackPanel
//①StackPanel 可以使控件按照默认的顺序排列
<StackPanel Background =" Green" Orientation ="Horizontal" >
Orientation ="Horizontal" :设置空间水平摆放
//②在Button内容里使用Stacakpanel可以设置多项内容。
<Button.Content>
<StackPanel Orientation ="Horizontal">
<Image Source ="asuna.jpg"></Image>
<TextBox Text ="确定¨"></TextBox>
</StackPanel>
</Button.Content>
5.Grid表格控件,可以控制几行几列。
<Grid>
<Grid>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Text ="用户名:" Grid.Row ="0" Grid.Column ="0" HorizontalAlignment ="Center" VerticalAlignment ="Center" FontSize ="28" Foreground ="SkyBlue"></TextBlock>
<TextBlock Text ="密码:" Grid.Row ="1" Grid.Column ="0" HorizontalAlignment ="Center" VerticalAlignment ="Center" FontSize ="28" Foreground ="SkyBlue"></TextBlock>
<TextBox Text ="" Grid.Row ="0" Grid.Column ="1" Margin ="20" FontSize ="32"></TextBox>
<PasswordBox Password ="" Grid.Row ="1" Grid.Column ="1" Margin ="20" FontSize ="32"></PasswordBox>
<Button Content ="登录" Margin ="20" Grid.Column =" 0" Grid.Row ="2" Background ="Gold" FontSize ="20" Foreground ="LightBlue" ></Button>
<Button Content ="取消" Margin ="20" Grid.Column ="1" Grid.Row ="2" Background ="Gold" FontSize ="20" Foreground ="LightBlue" ></Button>
<TextBlock Text ="请选择相应的操作" Margin ="20" Grid.Row ="3" Grid.Column ="0" Grid.ColumnSpan ="2" FontSize ="28" Foreground ="Green" HorizontalAlignment ="Center"></TextBlock>
</Grid>
</Grid>
6.用Grid布局生成连连看布局。
<Grid>
<Grid Name="gameGrid">
</Grid>
</Grid>
private void Window_Loaded(object sender, RoutedEventArgs e)
{
for (int i = 0; i < 10; ++i )
{
RowDefinition rowDef = new RowDefinition();
ColumnDefinition colDef = new ColumnDefinition();
gameGrid.ColumnDefinitions.Add(colDef);
gameGrid.RowDefinitions.Add(rowDef);
}
Random random = new Random();
for (int i = 0; i < 10; ++i )
{
for (int j = 0; j < 10; ++j )
{
int iImage = random.Next(0, 10);
Image img = new Image();
img.Source = new BitmapImage(new Uri("Image/" + iImage + ".ico", UriKind.Relative));
Grid.SetRow(img, i);
Grid.SetColumn(img, j);
gameGrid.Children.Add(img);
}
}
}
7.布局的嵌套
<Grid>
<Grid>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column ="0" Grid.Row ="1">
<Button Content ="Hello"></Button>
<Button Content ="WPF"></Button>
</StackPanel>
<StackPanel Grid.Column ="1">
<Button Content ="Hello"></Button>
<Button Content ="WPF"></Button>
</StackPanel>
</Grid>
</Grid>
8.Menu 和DockPanel的使用
1.Menu嵌套使用。
2.DockPanel布局可以设置内部控件的对齐方式。
<Grid>
<DockPanel>
<Menu Width="300" Height="20" DockPanel.Dock ="Top">
<MenuItem Header="文件">
<MenuItem Header="新建" Name="miNew" Click="miNew_Click"></MenuItem>
<MenuItem Header="打开"></MenuItem>
<MenuItem Header="保存"></MenuItem>
</MenuItem>
<MenuItem Header="操作">
<MenuItem Header="复制"></MenuItem>
<MenuItem Header="黏贴"></MenuItem>
</MenuItem>
</Menu>
<ToolBar DockPanel.Dock ="Bottom">
<Button Content ="Ha"></Button>
<Button Content ="Ha"></Button>
</ToolBar>
</DockPanel>
</Grid>
9.ToolBar工具条的使用
1.在工具条上使用按钮控件,按钮会发生变化。可以在按钮上加载图片让按钮好看。在按钮上响应事件
2.DockPanel按照先后的顺序排列。
10.多窗口的基础。
1.右击项目-添加-窗口
2.在响应的事件中添加创建显示窗口的代码
3.设置初始显示什么对话框 修改 App.XAML中的StartUpUri.
4.通过修改 title 来修改标题,ResizeMode来修改窗口缩放模式,
WindowsStartUpLocation来修改窗口显示的位置,WindowState修改窗口初始化模式
5.如何实现两个窗口之间的交互。
很简单 ,将两个窗口看成两个类。 父窗口响应的事件中 定义string,子窗口中定义并且封装string字段。
然后 父窗口中 new子窗口类的对象,对象引用string 然后赋值。
子类得到响应的string之后然后通过其他方式在呈现出来。
主窗口的XAML:
<Window x:Class="多窗口.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<DockPanel>
<Menu Height ="20" DockPanel.Dock ="Top">
<MenuItem Header ="文件">
<MenuItem Name="New" Click ="New_Click" Header ="新建对话框"></MenuItem>
</MenuItem>
<MenuItem Header ="操作"></MenuItem>
</Menu>
</DockPanel>
</Grid>
</Window>
主窗口的CS代码:
private void New_Click(object sender, RoutedEventArgs e)
{
string name = New.Header.ToString();
AboutWindow aboutWindow = new AboutWindow();
aboutWindow.TxtName = name;
aboutWindow.ShowDialog();
}
子窗口的XAML:
<Window x:Class="多窗口.AboutWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
WindowStartupLocation ="CenterScreen" WindowState ="Maximized"
Title="关于对话框" Height="300" Width="300" Name ="aboutDialog" Loaded="aboutDialog_Loaded" ResizeMode ="NoResize" >
<Grid>
<TextBox Name ="textName" Text ="" Height ="20" Width ="100" Background ="Gold"></TextBox>
</Grid>
</Window>
子窗口的CS:
public partial class AboutWindow : Window
{
private string txtName;
public string TxtName
{
get { return txtName; }
set { txtName = value; }
}
public AboutWindow()
{
InitializeComponent();
}
private void aboutDialog_Loaded(object sender, RoutedEventArgs e)
{
textName.Text = txtName;
}
}
APP类的XMAL:
<Application x:Class="多窗口.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="AboutWindow.xaml">
<Application.Resources>
</Application.Resources>
</Application>
11.打开和保存对话框
1.OpenFileDialog 常用属性是 Filter过滤器 FileName文件名
2.SaveFileDialog