(这是一个关于风格的问题,我自己已经回答过了)
"我在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,原来的就会消失按钮(在右侧)仍然在那里,只是不可见,所以你必须在它们上面添加按钮