黑马程序员_WPF(菜单Menu与DockPanel,Toolbar,多窗体,Openfiledalog 与Savefiledalog,自己编写代码进行加载图片)

来源:互联网 发布:mysql的left方法 编辑:程序博客网 时间:2024/06/05 19:19

一.菜单MenuDockPanel

<Grid>

        <DockPanel>

            <Menu Height="23" HorizontalAlignment="Left"  Name="menu1" VerticalAlignment="Top" Width="200" DockPanel.Dock="Top">

                <MenuItem Header="文件">

                    <MenuItem Header="新建"></MenuItem>

                    <MenuItem Header="打开" Name="miOpen" Click="miOpen_Click">

                        <MenuItem Header="1.jpg"></MenuItem>

                        <MenuItem Header="2.jpg"></MenuItem>

                        <MenuItem Header="3.jpg"></MenuItem>

                    </MenuItem>

                    <MenuItem Header="保存" Name="miSave" Click="miSave_Click"></MenuItem>

                </MenuItem>

                <MenuItem Header="编辑">

                    <MenuItem Header="复制"></MenuItem>

                    <MenuItem Header="粘贴"></MenuItem>

                </MenuItem>

                <MenuItem Header="视图"></MenuItem>

            </Menu>

            

        </DockPanel>

       

</Grid>

二.工具条控件(Toolbar

上图工具栏里面的工具比菜单中实现相同功能的操作更简便

Button里面放图片,可以有两种方式(正常来是属于下面第一种,但是也只有button可以直接放Image,工具条中的图片两种格式:pngico

 <Grid>

        <DockPanel>

            <Menu DockPanel.Dock="Top" Height="30">

                <MenuItem Header="文件"></MenuItem>

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

            </Menu>

            <ToolBar DockPanel.Dock="Top" Height="30">

                <Button>

                    <Button.Content>

                        <Image Source="images/2.png"></Image>

                    </Button.Content>

                </Button>

                <Button>

                    <Image Source="images/1.png"></Image>

                </Button>

            </ToolBar>

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

        </DockPanel>

</Grid>

三.多窗体

1.如何创建新窗体,新窗体名字以*******Window.xaml为宜;

2.如何更改起始窗体,在App.xaml中 StartupUri="MainWindow.xaml"处修改;

3.如何让某窗体在打开的时候自适应最大全屏,在某窗体的Xaml中,Window中,

WindowState=”Maximized”;

4.如何更改某窗体的名称,在某窗体的Xaml中,Window中,Title=”MainWindow”

5.如何弹出新窗体并传参//窗体从本质上去研究会发现窗体也是类,同样可以定义属性,通过属性传递参数是可以的。

     private void op_Click(object sender, RoutedEventArgs e)

        {

            string name = this.txt_Main.Text;

            AboutWindow about = new AboutWindow();

            about.Username = name;

            about.ShowDialog();

        }

6.如何让新弹出的窗体实现屏幕居中,并且大小固定,不可更改则在新窗体的Xaml中,Window中,ResizeMode="NoResize" WindowStartupLocation="CenterScreen"

7.窗体之间传值,都是通过窗体该类的属性进行传值的;

四.Openfiledalog Savefiledalog

private void button1_Click(object sender, RoutedEventArgs e)

        {

            OpenFileDialog ofd = new OpenFileDialog();

            ofd.Filter = "文本文件|*.txt|图片|*.jpg";

            if (ofd.ShowDialog() == true)

            {

                string filename = ofd.FileName;

                MessageBox.Show("成功打开对话框" + filename);

            }

            else

            {

                MessageBox.Show("打开失败");

            }

          

        }

 

        private void button2_Click(object sender, RoutedEventArgs e)

        {

            SaveFileDialog sfd = new SaveFileDialog();

            sfd.Filter = "文本文件|*.txt|视频文件|*.avi|word文件|*.doc|所有文件|*.*";

            if (sfd.ShowDialog() == true)

            {

                MessageBox.Show("成功保存");

            }

            else

            {

                MessageBox.Show("保存失败");

            }

        }

五.自己编写代码进行加载图片

        private void button3_Click(object sender, RoutedEventArgs e)

        {

            OpenFileDialog ofd = new OpenFileDialog();

            ofd.Filter = "图片|*.jpg";

            if (ofd.ShowDialog() == true)

            {

                string picname = ofd.FileName;

                //通过代码的形式进行加载

                this.image1.Source = new BitmapImage(new Uri(picname));

            }

            else

            {

                MessageBox.Show("打开失败");

            }

        }

 

 

 

 

 

 

 

0 0
原创粉丝点击