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");
}*/