C#进阶 WPF基础二 布局嵌套、菜单、工具栏、多窗口

一、布局的嵌套

布局容器StackPanel 、Grid、DockPanel之间可以相互嵌套

这样可以做成各种各样风格的窗体,功能强大


        
            
                
                
            
            
                
                
            
            
            
                
                
                
            
            
                
                    
                    
                
                
                    
                    
                    
                
                
            
        
    


二、菜单Menu

菜单一般放在DockPanel中,设置属性为Top,表示菜单放在窗口顶端


        
            
                
                    
                        
                        
                        
                    
                    
                
                
                    
                    
                    
                
            
                
            
            
    


三、工具栏ToolBar

工具栏控件:放入其中的控件都有新的默认外观; 显示图标的方法:Button的Content属性中放Image

资源:图标库

在ToolBar中的控件,与普通控件外观不太一样了。所有的控件都可以用在ToolBar中。点击事件在控件的Clicked事件中


        
            
                
                
            
            
                
                
                
                    
                        
                    
                
                
            
            
        
    


四、多窗口基础

窗口:WPF中每一个窗口都是Windows类的一个子类

Close()关闭当前窗口

Title :窗口标题

ResizeMode: 是否可缩放,枚举类型,NoResize 不可缩放

WindowsState: 窗口是否可以最大化、最小化。枚举类型

WindowStartupLocation:窗口初始位置,枚举类型,CenterScreen--在屏幕中间

1、新建窗口,并弹出事件

创建窗口对象:New;

调用ShowDialog方法,打开窗口

AboutWindow abWin = new AboutWindow();
            abWin.ShowDialog();

2、设置初始窗口:

在App.xmal文件中,修改:StartupUri="MainWindow.xaml">  的MainWindow,改为想要初始显示的窗口名字

 

3、窗口之间传值,可以通过public属性实现

发送值给弹出的窗口

1)在要接收值的窗口类新建一个同类型公共属性

public string txtSend { get; set; }

2)在主窗口中new弹出的窗口时,将要发送的值赋给new的窗口对象的属性

AboutWindow abWin = new AboutWindow();
            abWin.txtSend = txtDoc.Text.Trim();
            abWin.ShowDialog();

3)在接收窗口的加载事件中,将公共属性的值赋值给接收的控件即可

private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            txtReceive.Text = txtSend;
        }

接收弹出的窗口值也类似,

 

 4)窗口的确定与取消按钮

DialogResult :如果窗口是用ShowDialog打开的,则DialogResult会自动关闭窗口,并把DialogResult的值通过ShowDialog方法的返回值返回主窗口

 在主窗口中调用:

LoginWindow lgWin = new LoginWindow();
            bool? result = lgWin.ShowDialog();
            if (result == true)
            {
                txtUserName.Text = lgWin.Name;
                txtUserPsw.Text = lgWin.Psw;
            }
            else
                return;


5)MessageBox的返回值

用show的重载函数可以完成多种功能,其中一种是在提示对话框生成1~3个控件,并判断点了哪个按键。在if中写入相应的事件

MessageBoxResult rs1 = MessageBox.Show("保存完成", "提示", MessageBoxButton.YesNoCancel);
                if(rs1 == MessageBoxResult.OK)
                {

                }


五、打开、保存对话框:引入命名控件:using Microsoft.Win32;

1、打开对话框类:  OpenFileDialog

1)新建对话框对象:OpenFileDialog open = new OpenFileDialog();

if (open.ShowDialog() == true)
            {
                //选择文件点确定后执行的动作
            }
            else
                  return;  //点取消或者关闭后的动作

2)属性和方法:用法与winform类似

OpenFileDialog open = new OpenFileDialog(); //新建打开文件对话框
            open.InitialDirectory = @"C:\Users\tufeiax\Desktop"; //设置初始路径
            open.Filter = "文本文件|*.txt|所有文件|*.*";  //文件过滤器


其他参考Winform


 

 

 

 

 

 

 

 

你可能感兴趣的:(C#学习前期)