提问人:Mateusz Zawojski 提问时间:11/14/2023 最后编辑:Mateusz Zawojski 更新时间:11/17/2023 访问量:78
如何像 Windows 11 一样自定义 WinForms 标题栏 [已关闭]
How to customize WinForms title bar like Windows 11 [closed]
问:
我想在 C# Windows 窗体中自定义标题栏。
我需要做的是:
- 当应用程序框架像 Windows 11 一样接触屏幕边缘时展开应用程序窗口。
- 使用 C# Windows 窗体像 Windows 11 一样应用(对齐布局/组)
我需要使 Windows 窗体主布局屏幕像 Windows 11 屏幕一样灵活(当它触及屏幕边缘时展开,当我使用鼠标悬停缩放按钮时显示对齐布局/组)。
如何一步一步地做出上述解决方案?
答:
1赞
IV.
11/14/2023
#1
据我了解,您希望检测应用程序框架何时接触屏幕边缘,以便显示(或更改)您正在设计的“自定义标题栏”的外观。如果要拖动主窗体,则可以在属性的边界矩形不再完全包含在当前屏幕中时触发属性。bool
public partial class MainForm : Form
{
public MainForm() =>InitializeComponent();
public bool IsLeavingScreenBounds
{
get => _isLeavingScreenBounds;
set
{
if (!Equals(_isLeavingScreenBounds, value))
{
_isLeavingScreenBounds = value;
if (IsLeavingScreenBounds)
{
MessageBox.Show("Hit the edge!");
}
}
}
}
bool _isLeavingScreenBounds = false;
protected override void OnMove(EventArgs e)
{
base.OnMove(e);
var currentScreen = Screen.FromControl(this);
IsLeavingScreenBounds = !currentScreen.WorkingArea.Contains(Bounds);
}
}
评论