我正在构建一个wpf窗口,我删除了窗口边框,并将最小化,最大化和关闭按钮添加到菜单控件中。这看起来像这样: http://prnt.sc/e3vusq
现在我有两个问题:当我最大化时,窗口有点偏离屏幕,看起来像这样:http://prnt.sc/e3vvhz
这是我的3个按钮的代码
private void Button_Click(object sender, RoutedEventArgs e) //close button
{
if (MessageBox.Show("Želite shranit spremembe?", "Opozorilo", MessageBoxButton.YesNoCancel, MessageBoxImage.Exclamation) == MessageBoxResult.No)
{
this.Close();
}
else
{
if (saveChanges)
{
quickSave();
}
}
}
private void Button_Click_1(object sender, RoutedEventArgs e) //maximize button
{
if(this.WindowState == WindowState.Maximized)
{
this.WindowState = WindowState.Normal;
}
else
{
this.WindowState = WindowState.Maximized;
}
}
private void Button_Click_2(object sender, RoutedEventArgs e) //minimize button
{
this.WindowState = WindowState.Minimized;
}
我怎么能摆脱这个问题?我正在考虑制作一种方法,将窗口设置为屏幕大小n最大化,但这对于win7拖拽到边界最大化不起作用。
我的另一个问题是如何让菜单栏成为一个clic-to-drag-window控件。 现在,我将此代码应用于窗口鼠标按下,但相同的代码不适用于菜单控件
private void Window_MouseDown(object sender, MouseButtonEventArgs e)
{
if (e.ChangedButton == MouseButton.Left)
this.DragMove();
}
XAML WPF代码段 https://codeshare.io/G6pJjg
编辑:尝试触发:
<Window.Style>
<Style TargetType="Window">
<Style.Triggers>
<Trigger Property="WindowState" Value="Maximized">
<Setter Property="Width" Value="{Binding Source={x:Static SystemParameters.FullPrimaryScreenWidth}}" />
<Setter Property="Height" Value="{Binding Source={x:Static SystemParameters.FullPrimaryScreenHeight}}"/>
</Trigger>
</Style.Triggers>
</Style>
</Window.Style>