菜单的生成
<Grid>
<Menu Height="23" Name="menu1" Width="200" HorizontalAlignment ="Left" >
<MenuItem Header =" 文件"> //一级菜单
<MenuItem Header =" 打开"> //二级菜单
<MenuItem Header =" cpp">//三级菜单
</MenuItem>
</MenuItem>
<MenuItem Header =" 退出">
</MenuItem>
</MenuItem>
<MenuItem Header =" 编辑">//一级菜单
<MenuItem Header =" 复制">//二级菜单
</MenuItem>
</MenuItem>
</Menu>
</Grid>
另外一层
<Grid>
<Button>
</Button>
</Grid>
显示一般都在DockPanel里面操作
<DockPanel>
<Menu DockPanel.Dock ="Top">
</Menu>
<TextBox DockPanel.Dock =" Bottom">
</TextBox>
</DockPanel>
工具栏
<ToolBar DockPanel.Dock =" Top">
<Button Content =" 保存">
</Button>
<Button Content =" 保存新建">
//工具栏使用图标
<Button>
<Button.Height >//属性值赋值
23
</Button.Height>
<Button.Content>
<Image Source ="Images/01.bmp">
</Image>
</Button.Content>
</Button>
<TextBox>
</TextBox>
</ToolBar>
title 标题
resizemode 窗口大小
windowstartLocation = 窗口开始位置
windowstate 窗口默认大小
Margin 控件距离四周的值
bool? dialogresult //如果窗口是用showDialog打开的,则给dialogresult会自动关闭窗口,并把dialogresult属性的值通过showDialog的返回值返回。
通配符???
using sysyten.win32;
OpenFileDialog ofg;
ofg.ShowDialog()
ofg.filename 文件名
ofg.initialdirectory 设置文件初始目录
ofg.Filter = "文本文件|*.txt|图片|*.jpg;*.bmp"//同时显示多个格式使用;
saveFiledialog sfg;
string picfilename = sfg.filename;
获取图片地址
image1.Source = new BitmapImage(new Uri(picfilename))//image1为另外一个显示控件的名称
focus()获取焦点
继承
class Animal
{
}
class Dog:Amnimal
{
}
Dog dog = new Dog(); //dog为一个对象
Animal al = dog;//al为一个变量
可以将一个子类的对象赋值给一个父类的变量。变量时一个标签,对象是一个实际存在的东西。
Animal al= new Dog()
click事件
sender 都是object类型
Btton btn = (Btton)sender;
数组 int[] nums = new int[3];
遍历数组 foreach(int i in nums)
{
}
集合类 泛型<int>
List<int> list = new List<int>();
list.Add();//添加数据
//和数据绑定有关??
list<Dog> list = new List<Dog>();
list.Add(new Dog());
控件的可见属性。txt为控件名
txt.Visibility = System.Windows.Visibility.Collapsed;
Isenable //控件是否可用
Background //背景色 ctrl+j
textBox 的TextWrapping = "Wrap";换行属性
maxlength 用户输入的长度不超过n个字符
passwordBox 密码控件
c#中含有可null和不可null的类型
在不可null类型后面加?就可以为null
RadioButton 单选按钮
GroupName 组名
Datapicker 日期控件
DateTime? value = datapicker.selectedDate;
Datetime.Today //当前日期
DataTime.now//当前时间
Image 图片控件
ProgressBar 进度条
value 当前值
Isindaterminate 不确定模式
布局
grid布局
<grid>
<grid.columnDefinition>
<columnDefinition></ColumnDefinition>//要几列写几条
</grid.columnDefinition>
<grid.rowDefinitions>
<rowDefinition></rowDefinition>//要几行写几条
</grid.rowDefinitions>
<button grid.row = "1" grid.column ="1"></button>//要修改控件的显示位置,使用grid修改行和列,行数和列数是使用grid.columnSpan = "2",grid .rowSpan = "2"
//grid 属于附加的属性,不是行列包含的属性
</grid>
horizontalAlignment 横向位置
VerticalAlignment 纵向位置
stackpanel布局
orientation 排布方式 纵向排列 横向排列
从上往下布局
//这里只能添加一个属性值,要添加多个要用StackPanel将多个属性值打包起来
<stackPanel>
添加多条东西
例如 添加图片。。
<Image source = "地址"></Image>
</stackpanel>
</ button.content >
动态添加控件
一般在load时载入
Button btn = new Button();
btn.content = "xxx";
grid.setrow(btn,i);//修改btn的行
容器名。children.add(btn);
//动态添加行
columnDefinition coldef = new columnDefinition();
容器名.columnDefinitions.Add(coldef)
//随机数生成类
Random random =new random();
random.Next(min,max);x>=min x<max
布局的嵌套
<grid>
<grid.columnDefinition>
<columnDefinition></ColumnDefinition>//要几列写几条
</grid.columnDefinition>
<grid.rowDefinitions>
<rowDefinition></rowDefinition>//要几行写几条
</grid.rowDefinitions>
嵌套布局
<stankpanel>
</stankpanel>
<grid>
</grid>
</grid>