使自定义窗口镀铬与wpf



(这是一个关于风格的问题,我自己已经回答过了)

"我在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在

statechange ="Window_StateChanged"

这将会把所有的东西从屏幕边缘推到可见

解决问题2

inside your window:

<WindowChrome.WindowChrome>
<WindowChrome CaptionHeight="35">
</WindowChrome>
</WindowChrome.WindowChrome>

使CaptionHeight你的窗口chrome的高度,在那里你希望窗口被

拖动

解决问题3

不要使用windowstate none,只要定义windowchrome,原来的就会消失按钮(在右侧)仍然在那里,只是不可见,所以你必须在它们上面添加按钮

相关内容

  • 没有找到相关文章

最新更新