一聚教程网:一个值得你收藏的教程网站

热门教程

wpf窗口事件拖拽缩放例子介绍

时间:2022-06-25 08:43:27 编辑:袖梨 来源:一聚教程网

整理一下最近用的wpf小知识。

1、WindowStyle=none,无边框窗口拖拽:

本方法最完美最简洁.

为自绘的标题栏添加MouseLeftButtonDown事件,并在事件中写入this.DragMove();

代码:

 代码如下 复制代码

VerticalAlignment="Top" Width="1272">







private void logo1_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
this.DragMove();
}

2、禁止缩放(放大缩小)窗口

只需要设置

ResizeMode="NoResize"

3、Wpf窗口自适应: 利用WPF中的ViewBox容器空间。ViewBox是一个容器空间,它会自动缩放容器中的子空间以填满自身,同时它只能有一个子控件。不过,我们可以把Canvas控件作为ViewBox控件的子控件。然后在Canvas控件中布局其他的控件。

代码:

 代码如下 复制代码

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="WPFTest"

mc:Ignorable="d"

xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

SizeToContent="Manual" Width="400" Height="300">




















说明:

最外面的是Window容器,设置了标题(WPFTest)和大小(400×300),它也只能有一个子控件。

Window的子控件是DockPanel容器,是自动停靠容器控件。设置LastChildFill="True",表示最后一个子控件自动填充剩余的空间。没有设置大小,默认大小是Window的客户区大小。

DockPanel控件有三个子控件

Menu控件:菜单控件,自动停靠在容器的顶端

StatusBar控件:状态栏控件,自动停靠在容器的底部

ViewBox控件:容器控件,自动填充DockPanel剩余的控件。没有设置大小,为填充的大小。设置填充的模式为Fill,表示子控件填充自身的容器的大小

在ViewBox中放置了一个Canvas控件,设置了大小(注:一定要设置大小,否则默认时会产生各种不可思议的效果),设置了背景色

在Canvas中放置了一个Button控件。只是示例,Canvas中还能放置其他的控件

4、去掉自带的最大化 最小化。自定义最大化 最小化。

屏蔽掉WPF窗口自带的最大、最小、关闭等设置Window的属性  windowStyle=“none”

自定义自己的按钮:

 代码如下 复制代码



后台事件代码:

private void WindowsMin_Click(object sender, RoutedEventArgs e)
{
this.WindowState = System.Windows.WindowState.Minimized;
}
  private void WindwowsClose_Click(object sender, RoutedEventArgs e)

//this.Close();
if (MessageBox.Show("确定退出助手吗?",
"确认退出", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
{
// Close the window
Application.Current.Shutdown();
}
else
{
// Do not close the window
}
  
}

注意:WPF的close是关闭不了进程的。需要用  Application.Current.Shutdown();

热门栏目