(这是一个问答式的问题,我自己已经回答过了)
" 我正在 wpf 中制作自定义窗口镶边,但是当我将其设置为 windowStyle=none 时
- 窗外的剪辑
- 我不能拖动窗口
- 并且窗口覆盖了任务栏
"
(这是一个问答式的问题,我自己已经回答过了)
" 我正在 wpf 中制作自定义窗口镶边,但是当我将其设置为 windowStyle=none 时
"
解决问题1
使窗口中的主网格可以按名称访问:
<Grid Name="MainGrid">
然后添加这些函数以在窗口状态更改时创建边距
void setWinMargin()
{
switch (WindowState)
{
case WindowState.Maximized:
MainGrid.Margin = new Thickness(8, 8, 8, 8);
break;
case WindowState.Normal:
MainGrid.Margin = new Thickness(0, 0, 0, 0);
break;
}
}
private void Window_StateChanged(object sender, EventArgs e)
{
setWinMargin();
}
这对你来说是你的 xaml
StateChanged="Window_StateChanged"
这将做的是将所有内容从屏幕边缘推开以可见
解决问题2
在您的窗口内:
<WindowChrome.WindowChrome>
<WindowChrome CaptionHeight="35">
</WindowChrome>
</WindowChrome.WindowChrome>
使 CaptionHeight 成为您的窗口镶边高度,您希望窗口被拖动到的位置
解决问题3
不要使用windowstate none,只需定义windowchrome,原来的按钮就会消失,按钮(在右侧)仍然存在,只是不可见,所以你必须把按钮放在它们上面