1. 程式人生 > >WPF學習——最大化有陰影的無邊框窗體

WPF學習——最大化有陰影的無邊框窗體

畫兩個按鈕,希望執行時只顯示一個按鈕,另一個按鈕隱藏。 用到 Visibility="Collapsed",隱藏按鈕,且不為它保留位置。
<!--按鈕的繪製-->
<Button x:Name="btnMaximize" Padding="3" Click="btnMaximize_Click" HorizontalAlignment="Right" Template="{StaticResource ButtonTemplate}" VerticalAlignment="Top" Width="45" Height="42">
<Image Source="Image/maximize.png" Width="18" Height="18"></Image>
</Button> <Button x:Name="btnNormal" Padding="3" Click="btnNormal_Click" HorizontalAlignment="Right" Template="{StaticResource ButtonTemplate}" VerticalAlignment="Top" Width="45" Height="42" Visibility="Collapsed">
<Image Source="Image/huanyuan.png" Width="24" Height="24"></Image>
</Button> <Button x:Name="btMinWindow" Padding="3" Click="btMinWindow_Click" HorizontalAlignment="Right" Template="{StaticResource ButtonTemplate}" VerticalAlignment="Top" Width="45" Height="42">
<Image Source="Image/min.png" Width="18" Height="18"></Image>
</Button>
//最小化、最大化、關閉視窗按鈕 Rect rcnormal;//定義一個全域性rect記錄還原狀態下視窗的位置和大小。 /// <summary> /// 最大化 /// </summary>
private void btnMaximize_Click(object sender, RoutedEventArgs e)
{
this.btnMaximize.Visibility = Visibility.Collapsed;//使最大化圖示隱藏
this.btnNormal.Visibility = Visibility.Visible;//使還原圖示顯示
this.rcnormal = new Rect(this.Left, this.Top, this.Width, this.Height);//儲存下當前位置與大小
Rect rc = SystemParameters.WorkArea;//獲取工作區大小
// this.BorderThickness = new Thickness(0, 0, 0, 0);//隱藏陰影
// 經過試驗,發現window最多可以比螢幕大一圈,10畫素左右,再多就不能顯示了
this.Left = -10;//設定位置
this.Top = -10;
this.Width = rc.Width+22;
this.Height = rc.Height+20;
}
/// <summary> /// 還原 /// </summary> private void btnNormal_Click(object sender, RoutedEventArgs e)
{
// this.BorderThickness = new Thickness(24, 24, 24, 24);//顯示陰影
this.Left = rcnormal.Left;
this.Top = rcnormal.Top;
this.Width = rcnormal.Width;
this.Height = rcnormal.Height;
this.btnMaximize.Visibility = Visibility.Visible;
this.btnNormal.Visibility = Visibility.Collapsed;
}
private void btMinWindow_Click(object sender, RoutedEventArgs e)
{
this.WindowState = WindowState.Minimized;
}

相關推薦

WPF學習——最大化陰影邊框窗體

畫兩個按鈕,希望執行時只顯示一個按鈕,另一個按鈕隱藏。 用到 Visibility="Collapsed",隱藏按鈕,且不為它保留位置。 <!--按鈕的繪製--> <Button x:Name="btnMaximize" Padding="3"

WPF 仿QQ邊框窗體(自動隱藏/可縮放/最大化不覆蓋工作列)

今天做一個綜合案例,WPF的仿QQ窗體,貼邊自動隱藏,無邊框窗體,可拖拽實現縮放,最大化不覆蓋工作列。 無邊框窗體縮放,上一篇文章已經介紹了,不過今天使用的方法更簡單,不會佔用檢視的資源,純程式碼完成。 使用事件: OnMouseLeftButtonDown(),OnMou

WPF中製作邊框窗體

                眾所周知,在WinForm中,如果要製作一個無邊框窗體,可以將窗體的FormBorderStyle屬性設定為None來完成。如果要製作成異形窗體,則需要使用圖片或者使用GDI+自定義繪製。那麼,在WPF中,我們怎樣製作一個無邊框窗體呢?答案是將Window的WindowStyl

WPF圓角透明邊框窗體

<Window x:Class="ImportData.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.micr

WPF邊框窗體改變大小和移動

       最近一直在學習 WPF,看著別人做的WPF程式那麼漂亮,眼紅啊~ 很多漂亮的程式都是無邊框的。於是無邊框視窗操作就是最重要的了。無邊框視窗的操作一直以來相關的資料就很少。WPF 下的就更少了,有的大多是無邊框窗體的移動。在得到群裡高人的指點,再查了一些資料之

QT 邊框窗體最大化 遮擋windows工作列的問題

最近寫的一個基於QT的程式的UI,要求整個窗體的風格渾然一體。包括窗體的邊框什麼的。這個其實定義了QSS啥的就沒什麼複雜的了,純粹體力活了。但是如果想整體制定一個窗體的話就需要讓窗體的屬性是無邊框(frameless)的。只有這樣才能徹底的脫離windows的窗體管理器。才能

WPF邊框窗體

WPF是Windows作業系統中一次重大變革,與早期的GDI+/GDI不同。 WPF是基於DirectX引擎的,支援GPU硬體加速,在不支援硬體加速時也可以使用軟體繪製。 利用WPF建立無邊框的窗體: 第一種方式:設定WindowStyle="None" AllowsTr

Qt學習筆記:邊框窗體的移動

類似360安全衛士介面, 滑鼠只能夠在綠色的位置進行點選和移動,這就是採用Qt實現的無邊框窗體的移動。 其實實現無邊框窗體的移動主要是靠以下三個函式: void mousePres

C# WinForm開發系列之自定義邊框窗體(最大化,最小化,關閉,拉伸和移動的相關知識)

        ////重寫系統WndProc函式,使無邊框窗體可移動         protected override void WndProc(ref Message m)         {             switch (m.Msg)             {              

c# 邊框窗體邊框陰影

Windows API: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Li

c#禁止雙擊最大化邊框窗體移動

轉載的,不是特別懂,以後再看 protected override void WndProc(ref Message m) {     switch (m.Msg)     {         case 0x84:             base.WndProc(ref m);          

WPF 呼叫API修改窗體風格實現真正的邊框窗體

public class NativeMethods     {         /// <summary>          /// 帶有外邊框和標題的windows的樣式          /// </summary>          public const long WS_

Qt邊框窗體-最大化時支援拖拽還原

目錄 一、概述 二、效果展示 三、demo製作 1、設計窗體 2、雙擊放大 四、拖拽 五、相關文章 原文連結:M

winform邊框窗體點擊任務欄最小化

mini spa inf clas style cte color con reat protected override CreateParams CreateParams { get {

C# 鼠標點擊移動窗體代碼,可以實現邊框窗體的拖動

點擊 obj cat += tar sender see sed false private static bool IsDrag = false; private int enterX; private int enterY;

winform 邊框窗體拖拽實現

sed style windows part fse use left clas void using System; using System.Collections.Generic; using System.ComponentModel; using Syst

WPF一步步實現完全邊框自定義Window(附源碼)

nbsp interop -c 思路 pan cit 最終 auto pre 在我們設計一個軟件的時候,有很多時候我們需要按照美工的設計來重新設計整個版面,這當然包括主窗體,因為WPF為我們提供了強大的模板的特性,這就為我們自定義各種空間提供了可能性,這篇博客主要用來

pyqt5_控件_自定義邊框窗體拖動

spa 窗體拖動 ica 定義 event sta track gets button from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * import sy

C#WinForm邊框窗體移動方法、模仿鼠標單擊標題欄移動窗體位置

發送 mage log sin mes win sender src using C#WinForm無邊框窗體移動方法、模仿鼠標單擊標題欄移動窗體位置 這裏介紹倆種辦法 方法一:直接通過修改窗體位置從而達到移動窗體的效果 方法二:直接偽裝發送單擊任務欄消息,讓應用程序

關於自定義的Qt邊框窗體

       現在桌面軟體的設計風格已經偏向於扁平化了。那麼基於Qt開發的桌面應用也會常常被提出扁平化無邊框的需求。怎麼去掉應用程式旁邊土到渣的邊框呢?本文應該可以幫到你。 QT += core gui greaterThan(QT_MA