WPF | C# - когда WindowStyle = "None" и окно развернуто, панель задач не отображается

Как я могу видеть панель задач, когда WindowStyle="None", Я пытаюсь использовать свои собственные кнопки (Закрыть, Развернуть, Свернуть), удаляя фактическую строку заголовка окна и используя dll, также удаляя границу. Буду очень признателен за простоту обслуживания и вставку в мой код.

Заранее спасибо!

1 ответ

Одно из возможных решений: ограничить максимальный размер окна. Например:

Код C#:

/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1 : Window
{
    public Window1()
    {
        InitializeComponent();
    }

    private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
    {
       if (WindowState == WindowState.Normal)
        {
            System.Drawing.Rectangle rec = System.Windows.Forms.Screen.FromHandle(new System.Windows.Interop.WindowInteropHelper(this).Handle).WorkingArea;
            MaxHeight = rec.Height;
            MaxWidth = rec.Width;
            ResizeMode = ResizeMode.NoResize;
            WindowState = WindowState.Maximized;
        }
        else
        {
            MaxHeight = double.PositiveInfinity;
            MaxWidth = double.PositiveInfinity;
            ResizeMode = ResizeMode.CanResize;
            WindowState = WindowState.Normal;
        }
    }
}

Вам нужно установить max size непосредственно перед изменением состояния окна. В противном случае, в некоторых случаях это работает неправильно. Также не забывайте про ResizeMode.

И xaml:

<Window x:Class="WpfApplication2.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" WindowStyle="None" Height="300" Width="300">
    <Grid>
        <Button Content="Button" HorizontalAlignment="Left" Margin="0,0,0,0" VerticalAlignment="Top" Width="75" Click="ButtonBase_OnClick"/>
    </Grid>
</Window>
Другие вопросы по тегам