WPF windows窗体放大后四周会有一部分被遮挡,以下面的图标为例子,这是没有最大化下的样子:
应该是和窗体风格有关,上面的是传统winforms的,下面是 modenui 风格的
<local:CustomWindow x:Class="CustomSystemWindow.CustomWindow.DialogWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:CustomSystemWindow.CustomWindow"
mc:Ignorable="d" Title="DialogWindow" Height="250" Width="460" >
<Border Background="#15181C">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="120"></RowDefinition>
<RowDefinition Height="90"></RowDefinition>
</Grid.RowDefinitions>
<TextBlock x:Name="MessageControl" Grid.Row="0"
FontSize="14" Foreground="White" TextWrapping="Wrap"
VerticalAlignment="Center" HorizontalAlignment="Center"/>
<Border Grid.Row="0" BorderBrush="#252A33" BorderThickness="1"
VerticalAlignment="Bottom"></Border>
<Grid Grid.Row="1" x:Name="YesNoControl" Visibility="Visible">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Button Grid.Column="0" HorizontalAlignment="Right"
Height="30" Width="150" Content="是" Foreground="White"
Margin="0,0,10,0" Background="#434B59"
Click="OkButtonClick"/>
<Button Grid.Column="1" HorizontalAlignment="Left"
Height="30" Width="150" Content="否" Foreground="White"
Margin="10,0,0,0" Background="#434B59"
Click="CancelButtonClick"/>
</Grid>
<Button Grid.Row="1" x:Name="OkControl" Visibility="Collapsed"
Height="30" Width="150" Content="确认"
Foreground="White" Background="#434B59"
Click="ConfirmButtonClick"/>
</Grid>
</Border>
</local:CustomWindow>
using System.Windows;
namespace CustomSystemWindow.CustomWindow
{
public partial class DialogWindow
{
public DialogWindow()
{
InitializeComponent();
}
public string Message
{
set { this.MessageControl.Text = value; }
get { return this.MessageControl.Text; }
}
public static bool? Show(string title, string msg, MessageBoxButton category)
{
var msgBox = new DialogWindow();
if (MessageBoxButton.OK == category)
{
msgBox.YesNoControl.Visibility = Visibility.Collapsed;
msgBox.OkControl.Visibility = Visibility.Visible;
}
else if (MessageBoxButton.YesNo == category)
{
msgBox.YesNoControl.Visibility = Visibility.Visible;
msgBox.OkControl.Visibility = Visibility.Collapsed;
}
msgBox.ResizeMode = ResizeMode.NoResize;
msgBox.WindowStartupLocation = WindowStartupLocation.CenterScreen;
msgBox.Title = title;
msgBox.Message = msg;
return msgBox.ShowDialog();
}
private void OkButtonClick(object sender, RoutedEventArgs e)
{
this.DialogResult = true;
this.Close();
}
private void CancelButtonClick(object sender, RoutedEventArgs e)
{
this.DialogResult = false;
this.Close();
}
private void ConfirmButtonClick(object sender, RoutedEventArgs e)
{
this.Close();
}
}
}