C#WPF基础02

2023-11-30 18:52:43 浏览数 (2)

C#WPF基础02

Menu菜单

可分为普通菜单(Menu)和上下文菜单(ContextMenu俗称右键菜单),Menu下可以放Menuitems,Menuitem下又可以放Menuitem。

Dockpanel布局

直接指定控件的位置

代码语言:javascript复制
<Window x:Class="day25test02.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:day25test02"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        //Dockpanel布局,直接指定控件的位置
        <DockPanel>
            <Menu DockPanel.Dock="Top">
                <MenuItem Header="选项1" FontSize="18">
                    <MenuItem Header="选择1"></MenuItem>
                    <MenuItem Header="选择1"></MenuItem>
                    <MenuItem Header="选择1"></MenuItem>
                </MenuItem>
                <MenuItem Header="选项2" FontSize="18">
                    <MenuItem Header="选择1"></MenuItem>
                    <MenuItem Header="选择1"></MenuItem>
                    <MenuItem Header="选择1"></MenuItem>
                </MenuItem>
                <MenuItem Header="选项3" FontSize="18">
                    <MenuItem Header="选择1"></MenuItem>
                    <MenuItem Header="选择1"></MenuItem>
                    <MenuItem Header="选择1"></MenuItem>
                </MenuItem>
                <MenuItem Header="选项4" FontSize="18">
                    <MenuItem Header="选择1"></MenuItem>
                    <MenuItem Header="选择1"></MenuItem>
                    <MenuItem Header="选择1"></MenuItem>
                </MenuItem>
            </Menu>
        </DockPanel>
    </Grid>
</Window>
Toolbar 工具栏

一些常用的快捷按键操作。

代码语言:javascript复制
<Window x:Class="day25test03.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:day25test03"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <DockPanel>
            <Menu DockPanel.Dock="Top">
                <MenuItem Header="选项1" FontSize="18">
                    <MenuItem Header="选择1"></MenuItem>
                    <MenuItem Header="选择1"></MenuItem>
                    <MenuItem Header="选择1"></MenuItem>
                </MenuItem>
                <MenuItem Header="选项2" FontSize="18">
                    <MenuItem Header="选择1"></MenuItem>
                    <MenuItem Header="选择1"></MenuItem>
                    <MenuItem Header="选择1"></MenuItem>
                </MenuItem>
                <MenuItem Header="选项3" FontSize="18">
                    <MenuItem Header="选择1"></MenuItem>
                    <MenuItem Header="选择1"></MenuItem>
                    <MenuItem Header="选择1"></MenuItem>
                </MenuItem>
                <MenuItem Header="选项4" FontSize="18">
                    <MenuItem Header="选择1"></MenuItem>
                    <MenuItem Header="选择1"></MenuItem>
                    <MenuItem Header="选择1"></MenuItem>
                </MenuItem>
            </Menu>
            <ToolBar DockPanel.Dock="Top" Height="30">
                <Button>
                    <Button.Content>
                        <Image Source="imgs/1.ico"></Image></Button.Content>
                </Button>
                <Button>
                    <Button.Content>
                        <Image Source="imgs/2.ico"></Image>
                    </Button.Content>
                </Button>
                <CheckBox>
                    <CheckBox.ToolTip>
                        <Image Source="imgs/3.ico"></Image>
                    </CheckBox.ToolTip>
                </CheckBox>
                <TextBox></TextBox>
            </ToolBar>
            <TextBox DockPanel.Dock="Bottom"></TextBox>
        </DockPanel>
    </Grid>
</Window>
多窗口

几个常用属性:

ResizeMode = NoResize; 不能缩放

WindowState = “Maximized”; 最大化

WindowStartupLocation = “CenterScreen”; 窗口初始位置

代码语言:javascript复制
private void Button_Click(object sender, RoutedEventArgs e)
        {
            Window1 window1 = new Window1();
            //打开一个窗体,直到关闭
            window1.ShowDialog();
        }
代码语言:javascript复制
<Window x:Class="day25tset04.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:day25tset04"
        mc:Ignorable="d"        
        Title="属性" Height="450" Width="800" ResizeMode="NoResize" WindowStartupLocation="CenterScreen">
    <!--改变窗体的标题,是否可改变大小,显示窗口正中央-->
    <Grid>
        <TextBox HorizontalAlignment="Left" Height="198" Margin="184,99,0,0" TextWrapping="Wrap" Text="这是对话框" VerticalAlignment="Top" Width="360"/>

    </Grid>
</Window>

窗口之间的传值通过属性来实现。

多窗口案例

代码语言:javascript复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;

namespace day25test05
{
    /// <summary>
    /// AboutWindow.xaml 的交互逻辑
    /// </summary>
    public partial class AboutWindow : Window
    {
        public String intput { get; set; }
        public AboutWindow()
        {
            InitializeComponent();
        }

        private void btnok_Click(object sender, RoutedEventArgs e)
        {
            intput = intputtxt.Text;
            DialogResult = true;
            //如果窗口是showdialog打开的,则DialogResult会自动关闭窗口,并且把DialogResult的值通过shoudialog方法的返回值返回
        }

        private void btnno_Click(object sender, RoutedEventArgs e)
        {
            DialogResult = false;
        }
    }
}
文件对话框
代码语言:javascript复制
//打开文件对话框
            /*OpenFileDialog ofd = new OpenFileDialog();
            //打开的文件框的筛选器
            ofd.Filter = "文本文件|*.txt|PNG图片|*.png";
            
            if(ofd.ShowDialog() == true) { String str = ofd.FileName; MessageBox.Show("ok" str); }
            else { MessageBox.Show("no"); }*/

            //保存文件对话框
            /*SaveFileDialog sfd = new SaveFileDialog();
            sfd.Filter = "文本文件|*.txt|PNG图片|*.png";
            if (sfd.ShowDialog() == true)
            {
                MessageBox.Show(sfd.FileName);
            }
            else
            {
                MessageBox.Show("no");
            }*/

0 人点赞