亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在WPF中創建自定義窗口鑲邊?

如何在WPF中創建自定義窗口鑲邊?

森欄 2019-12-13 09:42:48
如何為WPF窗口創建基本的自定義窗口鑲邊,該樣式不包含關閉按鈕,而仍然是可移動且可調整大小的窗口?
查看完整描述

3 回答

?
GCT1015

TA貢獻1827條經驗 獲得超4個贊

您設置窗口的WindowStyle="None",然后構建自己的窗口界面。您需要構建自己的“最小/最大/關閉/拖動”事件處理程序,但仍會保持“調整大小”。


例如:


<Window 

    WindowState="Maximized" 

    WindowStyle="None"

    WindowStartupLocation="CenterScreen"

    MaxWidth="{Binding Source={x:Static SystemParameters.WorkArea}, Path=Width}"

    MaxHeight="{Binding Source={x:Static SystemParameters.WorkArea}, Path=Height}"

>


    <DockPanel x:Name="RootWindow">

        <DockPanel x:Name="TitleBar" DockPanel.Dock="Top">

            <Button x:Name="CloseButton" Content="X"

                    Click="CloseButton_Click"                 

                    DockPanel.Dock="Right" />

            <Button x:Name="MaxButton" Content="Restore" 

                    Click="MaximizeButton_Click"

                    DockPanel.Dock="Right" />

            <Button x:Name="MinButton" Content="Min"

                    Click="MinimizeButton_Click"

                    DockPanel.Dock="Right" />


            <TextBlock HorizontalAlignment="Center">Application Name</TextBlock>

        </DockPanel>


        <ContentControl Content="{Binding CurrentPage}" />

    </DockPanel>


</Window>

下面是一些常見窗口功能的示例代碼


/// <summary>

/// TitleBar_MouseDown - Drag if single-click, resize if double-click

/// </summary>

private void TitleBar_MouseDown(object sender, MouseButtonEventArgs e)

{

    if(e.ChangedButton == MouseButton.Left)

        if (e.ClickCount == 2)

        {

            AdjustWindowSize();

        }

        else

        {

            Application.Current.MainWindow.DragMove();

        }

 }


/// <summary>

/// CloseButton_Clicked

/// </summary>

private void CloseButton_Click(object sender, RoutedEventArgs e)

{

   Application.Current.Shutdown();

}


/// <summary>

/// MaximizedButton_Clicked

/// </summary>

private void MaximizeButton_Click(object sender, RoutedEventArgs e)

{

    AdjustWindowSize();

}


/// <summary>

/// Minimized Button_Clicked

/// </summary>

private void MinimizeButton_Click(object sender, RoutedEventArgs e)

{

    this.WindowState = WindowState.Minimized;

}


/// <summary>

/// Adjusts the WindowSize to correct parameters when Maximize button is clicked

/// </summary>

private void AdjustWindowSize()

{

    if (this.WindowState == WindowState.Maximized)

    {

        this.WindowState = WindowState.Normal;

        MaximizeButton.Content = "1";

    }

    else

    {

        this.WindowState = WindowState.Maximized;

        MaximizeButton.Content = "2";

    }


}


查看完整回答
反對 回復 2019-12-13
  • 3 回答
  • 0 關注
  • 652 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號