学习传智播客WPF基础视频,总结
- XAML文件:注释
- 闭合
<Button>
<Button.Height>50</Button.Height>
</Button>
自闭合,简写
<Button Height="50" />
- ctrl+j,可以在编写xaml文件时,智能提示
- TextBox当设置isReadOnly属性为true时,不可更改里面的内容,但是可以复制,这是与TextBlock的区别;TextWrapping属性,表示是否自动换行,wrap自动换行,Nowrap不自动换行
- string s="";//表示s指向长度为0 的字符串
string s=null;//表示s没有指向字符串 - button 的content放图片,Margin属性是设置到四周的空隙
<Button Margin="0,0,2,3">
<Button.Content>
<Image source="1.jpg"></Image>
</Button.Content>
</Button>
- checkBox.IsChecked 是bool?类型(可空的bool类型),可以这样写判断
if(checkBox.IsChecked==true) 或者if((bool)checkBox.IsChecked) - RadioButton 有个属性GroupName,可以设置组名,由此来分组
- 时间选择框:DatePicker
取值:DateTime? t=DatePicker.SelectedDate;//也可用这个属性赋值 - DateTime.Now 当前时刻;DateTime.Today 当前日期,不包含时分秒
10.Image属性Source指向图片来源,可以直接写 - ProgressBar 属性IsIndeteminate(不确定模式)设为true时,这个控件中的滚动条就是一直滚动的方式
- PasswordBox
- Menu 菜单控件,MenuItem是子项,Header可以定义子项显示的内容,Name名字
- ToolBar 工具栏控件,可以直接在里面加控件,但是有些控件的外观会被ToolBar改变
- Window 属性:Title标题 ResizeMode=“NoResize” WindowStartupLocation=“CenterScreen” ;当窗口是以ShowDialog()显示出来的话,可以在窗口中給DialogResult赋值,这样窗口会自动关闭,而且会把赋值返回
- 页面布局
1)StackPanel 让里面的控件以横向或纵向固定排列
<StackPanel Orientation="Horizontal">
<Button content="1" />
<Button content="2" />
</StackPanel>
//想让button的content显示图片又显示文字
<Button Margin="0,0,2,3">
<Button.Content>
<StackPanel Orientation="Horizontal">
<Image source="1.jpg"/>
<TextBlock Text="haha" VerticalAlignment="Center"/>
</StackPanel>
</Button.Content>
<!--button.content的内容可以简化为: <Image source="1.jpg"/> -->
</Button>
代码实现StackPanel中添加控件
stackPanel.Children.Add(btn);
- Grid :更改窗口大小时,内部的控件可以很好的缩放
设计Grid两行两列,写入button控件和image控件,让image控件占两列
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition Width="30"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="50"></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Button Grid.Row="1" Grid.Colunm="1" />
<Image Source="1.jps" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" />
</Grid>
代码实现grid添加行列,添加image控件
ColumnDefinition colDef = new ColumnDefinition();
gridGame.ColumnDefinitions.Add(colDef);
RowDefinition rowDef = new RowDefinition();
gridGame.RowDefinitions.Add(rowDef);
img.Source = new BitmapImage(new Uri("1.jpg",UriKind.Relative));
//在xaml中可以这样写"1.jpg",因为xaml自动做了处理,但是自己写代码不行
//下面设置图片的位置
Grid.SetRow(img, i);
Grid.SetColumn(img, j);
gridGame.Children.Add(img);//若不指定位置,默认都是在第0行第0列
3) DockPanel 让里面的控件可以使用DockPanel(附加属性)来设置控件的位置