黑马程序员——WPF笔记

来源:互联网 发布:英雄联盟网络断开连接 编辑:程序博客网 时间:2024/06/06 16:56
---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------

WPF笔记

 

 

Asp.net 网页界面设计

Wpf 桌面程序界面设计

 

Asp.net不是仅仅拖界面

技术难度一样,做出来的东西多(wpf)

 

事件(event) 被打……,被动的

mouseEnter事件 鼠标进入

mouerLeave事件鼠标离开

Loaded事件  控件加载事件,程序初始化

Clicked事件 鼠标点击事件

Closed 事件 窗口关闭事件

多个控件可应用同一个事件

 

控件的方法,当调用控件的时候执行的动作   打……,主动的

l         获得焦点 txtbox.focus();     //txtbox执行focus这个方法,txtbox获得焦点

l          

 

Sender 指的是触发事件的控件,都是object类的

属性赋值的两种方法

 

Button

 

Checkbox

 

Textblock

 

Textbox

 

页面布局

1 Stackpanel布局

把元素从上到下一次布局;用Orientation="Horizontal"可设置为从左到右依次布局

 

控件内容设置:

 

            <Button>

                <Button.Content>

                    <Image Source="d:\documents\visual studio 2010\Projects\WpfApplication1\WpfApplication1\????2013611135187830.jpg"></Image>

                </Button.Content>

            </Button>

在按钮上放多个控件当做内容的方法是:先放一个stackpanel,在往stackpanel里面放东西

 

页面布局中的:水平布局是VerticalAlignment="Center"(水平居中)

  垂直布局是HorizontalAlignment="Center"(垂直居中)

 

2、Grid布局

分行和列的方法

<Grid>

            <Grid.ColumnDefinitions>

                <ColumnDefinition></ColumnDefinition>

                <ColumnDefinition></ColumnDefinition>

                <ColumnDefinition></ColumnDefinition>

                <ColumnDefinition></ColumnDefinition>

            </Grid.ColumnDefinitions>

 </Grid>

 

 

分列的方法

<Grid.RowDefinitions>

                <RowDefinition></RowDefinition>

                <RowDefinition></RowDefinition>

                <RowDefinition></RowDefinition>

                <RowDefinition></RowDefinition>

</Grid.RowDefinitions>

往里面放控件

<Image Grid.Row=" 1" Grid.Column=" 1"></Image>  //一行一列

占多行多列的方法

Grid.RowSpan=" 2"  两行

Grid.ColumnSpan  =" 2"两列

往父控件中加入子控件

gridGame.Children.Add(btn);

 

连连看

动态生成行和列

for (int i = 0; i < 3; i++)

            {

                ColumnDefinition columnDef = new ColumnDefinition();

                gridGame.ColumnDefinitions.Add(columnDef);

                RowDefinition rowDef = new RowDefinition();

                gridGame.RowDefinitions.Add(rowDef);

}

//往生成的表格内放控件

for (int j = 0; j < 3; j++)

                {

                    Button btn = new Button();

                    string str = string.Format("{0},{1}", i, j);

                    btn.Content = str;

                    Grid.SetColumn(btn,i);     分配行和列

                    Grid.SetRow(btn, j);

                    gridGame.Children.Add(btn);

                }

图片属性赋值

image.Source =new BitmapImage(new Uri(“路径",UriKind .RelativeOrAbsolute ));

 

禁止改变窗口大小

ResizeMode="NoResize"

 

布局可以互相嵌套

 

菜单

普通菜单menu和上下文菜单contextmenu

菜单定义

<menu>

<menuItem header=”文件”> //菜单内容

<menuItem>

</menuItem>//三级菜单

</menuItem>

<menuItem>

</menuItem>

 

</menu>

放在窗口顶端的方法 

1、把菜单代码放在stackpanel

<stackpanel>

<menu>

<menuItem header=”文件”> //菜单内容

<menuItem>

</menuItem>//三级菜单

 

</menuItem>

<menuItem>

</menuItem>

 

</menu>

</stackpanel>

2、可以放在dockpanel中,设置dockpanel.dock=”top”

<dockpanel>

<menu dockpanel.dock=”top”>

<menuItem header=”文件”> //菜单内容

<menuItem>

</menuItem>//三级菜单

 

</menuItem>

<menuItem>

</menuItem>

 

</menu>

</dockpanel>

 

工具条 toolbar

作用:执行快捷操作

<DockPanel>

            <Menu DockPanel.Dock="Top" >

                <MenuItem Header="文件">

                    <MenuItem Header="打开a"></MenuItem>

                </MenuItem>

                <MenuItem Header="编辑-"></MenuItem>

                <MenuItem Header="退出"></MenuItem>

            </Menu>

            <ToolBar DockPanel.Dock="Top" >

                <Button Content="打开a"></Button>

                <Button Content="关闭"></Button>

                <TextBox></TextBox>

            </ToolBar>

            <TextBox DockPanel.Dock="Bottom" ></TextBox>

        </DockPanel>

多窗口

 

一个项目中有多个窗口||打开新窗口

在其中的一个窗口的代码中添加

NewWindow newwindow=New NewWindow();

newwindow.ShowDialog();  //可以调出新窗口

 

  •      StartupUri 属性可以设置启动窗口

                       StartupUri=newwindow.xaml”;

  •         Close()方法可以关闭一个窗口      this.close()
  •        禁止改变窗口大小
  •       设置resize属性: ResizeMode="NoResize"
  •         把窗口的初始位置放在屏幕正中央     设置  WindowStartupLocation="CenterScreen"属性
  •         把窗口的初始大小为全屏   WindowState="Maximized" 默认最大化

 

 

窗体间传值

 DialogResult = true;//如果窗口是用showdialog打开的,则给DialogResult会自动关闭窗口,并且把DialogResult的属性值通过ShowDialog方法的返回值返回

---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------
原创粉丝点击