开发者

Maximizing a custom window to include taskbar

I made a custom window for my app and I wrote some code if a user clicks my custom maximize button:

    private void MaxThis(object sender, System.Windows.RoutedEventArgs e)
    { if (WindowState == WindowState.Maximized){
        WindowState = WindowState.Normal;}

    else { 
    this.Top = 0;
    this.Left = 0;
    this.MaxWidth = System.Windows.SystemParameters.WorkArea.Width; 
    this.MaxHeight = System.Windows.SystemParameters.WorkArea.Height;
    this.WindowState = WindowState.Maximized;
    }
    }

The rest开发者_Go百科oring to the normal state works fine. However when I want to maximize, it maximizes the window with a small margin on the right and bottom of the screen. Clicking maximize again fixes this somehow. How do I fix this to maximize at the first click...?


Take away the Height and Width properties you have set in XAML for your window


Try to use just

this.WindowState = WindowState.Maximized;

Perhaps code, goes before messing Windows API action.


Sorry, my mistake. Then you should use Windows API to raise Maximize event. Try this code:

[DllImport("user32.dll")]
public static extern int SendMessage(
    int hWnd,      // handle to destination window
    uint Msg,       // message
    long wParam,  // first message parameter
    long lParam   // second message parameter
);
public const int WM_SIZE = 0x0005;
public const int SIZE_MAXIMIZED = 2;

And in your click event:

SendMessage(this.Handle, WM_SIZE, SIZE_MAXIMIZED, 0);
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜