应要求不用WPF自带的边框以及最小化、最大化和关闭。自己写的,且只需要关闭
在设置WindowStyle="None"取消边框后,(另外设置AllowsTransparency=”True”,可以把多余的黑边去除。)
发现无法移动。而且显示也不是居中。这些都好解决
1.居中
public partial class MainWindow : Window
{
public MainWindow()
{
WindowStartupLocation = WindowStartupLocation.CenterScreen;
InitializeComponent();
}
}
2.移动
protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
{
base.OnMouseLeftButtonDown(e);
// Begin dragging the window
this.DragMove();
}
官方DragMove
https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.window.dragmove?view=netframework-4.8
其它可以参考:
https://www.cnblogs.com/xietianjiao/p/7325137.html
但最后遇到一个问题没有解决:
在移动后因为操作系统功能,在窗体接触屏幕边缘时会全屏显示,但这个时候我没法再移动窗体。
以为如果是用自带边框,相当于我能在全屏后拖住边框,还能取消全屏。
但无边框的话真不知道怎么操作
唯一在网上看到一条可能是解决方法的方案,但没时间研究了,就先附上
https://blog.csdn.net/qq_19764639/article/details/96125324
https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.shell.windowchrome?redirectedfrom=MSDN&view=netframework-4.5#%E5%AE%9A%E4%B9%89
关于关闭是使用了button按键
里面参数:
- SnapsToDevicePixels:以在整个 UI 上启用像素对齐呈现。 对于运行在大于 96 dots per inch (dpi) 的设备,像素对齐呈现可以最小化在单一实线附近出现的抗锯齿视觉瑕疵。
https://www.cnblogs.com/liancs/archive/2012/06/15/3879272.html
https://blog.csdn.net/dearbigdog/article/details/12002525
- RecognizesAccessKey:是否识别特殊字符(eg.下划线)
WPF中的RecognizesAccessKey问题 - 走遍江湖 - 博客园 (cnblogs.com)
- Stroke:虚线颜色
- radiusx和radiusY:对于椭圆来说,就是a和b的长
- ContentPresenter:WPF,控件模板中使用ContentPresenter-CSDN社区