WPF學習筆記(23)Window、Page與Frame、ViewBox

Window、Page與Frame

  • 一、Window
    • 1.模態窗口與非模態窗口
    • 2.Window類
    • 3.示例
  • 二、Page
    • 1.概述
    • 2.Page類
  • 三、Frame
    • 1.概述
    • 2.Frame類
    • 3.示例
  • 四、ViewBox
    • 1. 概述
    • 2. 詳解
    • 3. 示例
  • 總結


一、Window

1.模態窗口與非模態窗口

在這里插入圖片描述

2.Window類

屬性說 明
Title獲取或設置窗口的標題。
lcon設獲取或設置窗口的圖標。
WindowStartupLocation獲取或設置窗口首次顯示時的位置。
WindowState獲取或設置一個值,該值指示窗口是處于還原、最小化還是最大化狀態。
WindowStyle獲取或設置窗口的樣式
方法說 明
Activate()將窗口激活并將其帶到前臺
Close()關閉窗口
ShowDialog()顯示窗口并等待窗口關閉后才返回(模態)
Show()顯示窗口并返回(非模態)
Hide()隱藏窗口

3.示例

private void buttonMT_Click(object sender, RoutedEventArgs e)
{Window1 window = new Window1();window.ShowDialog();
}private void buttonFMT_Click(object sender, RoutedEventArgs e)
{Window1 window = new Window1();//設置父窗口,父窗口關閉時,子窗口一起關閉window.Owner = this;// 計算模態窗口的位置,以顯示器左上角為起點,左,上,右,下double left = Left + (Width - window.Width) / 2;double top = Top + (Height - window.Height) / 2;// 設置模態窗口的位置window.Left = left;window.Top = top;//改成 w.Show(); 可測試非模態窗口window.Show();
}
<Grid><Button x:Name="buttonMT" Content="模態窗口" HorizontalAlignment="Left" Margin="111,107,0,0" VerticalAlignment="Top" Height="94" Width="189" Click="buttonMT_Click"/><Button x:Name="buttonFMT" Content="非模態窗口" HorizontalAlignment="Left" Margin="481,107,0,0" VerticalAlignment="Top" Height="94" Width="189" Click="buttonFMT_Click"/>
</Grid>

在這里插入圖片描述

二、Page

1.概述

Page類 表示可導航的頁面,一般和 Frame 或 NavigationWindow 搭配使用
官方文檔:https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls.page?view=netframework-4.8
在這里插入圖片描述

2.Page類

Page類的部分屬性如下:
在這里插入圖片描述

三、Frame

1.概述

Frame類 是一種支持導航頁面的內容控件,內部可以顯示Page。
官方文檔:https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls.frame?view=netframework-4.8
在這里插入圖片描述

2.Frame類

Frame類的部分屬性如下:
在這里插入圖片描述

3.示例

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

public partial class MainWindow : Window
{public MainWindow(){InitializeComponent();}private void button1_Click(object sender, RoutedEventArgs e){frame.Content = new Page1();}//Navigate有四種重載方式,此處演示兩種private void button2_Click(object sender, RoutedEventArgs e){frame.Navigate(new Uri("Page2.xaml",UriKind.RelativeOrAbsolute));}private void button3_Click(object sender, RoutedEventArgs e){frame.Navigate(new Page3());}private void buttonForword_Click(object sender, RoutedEventArgs e){if (frame.CanGoForward) {frame.GoForward();}}private void buttonBack_Click(object sender, RoutedEventArgs e){if (frame.CanGoBack){ frame.GoBack(); }}
}
    <Grid><Frame x:Name="frame" Background="LightGray" Width="600" Height="300" Content="" Margin="100,10,100,125"/><Button x:Name="buttonForword" Content="返回" HorizontalAlignment="Left" Margin="100,337,0,0" VerticalAlignment="Top" RenderTransformOrigin="0.288,0.263" Height="26" Width="71" Click="buttonForword_Click"/><Button x:Name="buttonBack" Content="翻頁" HorizontalAlignment="Left" Margin="629,337,0,0" VerticalAlignment="Top" RenderTransformOrigin="0.288,0.263" Height="26" Width="71" Click="buttonBack_Click"/><Button x:Name="button1" Content="1" HorizontalAlignment="Left" Margin="312,337,0,0" VerticalAlignment="Top" RenderTransformOrigin="0.288,0.263" Height="26" Width="38" Click="button1_Click"/><Button x:Name="button2" Content="2" HorizontalAlignment="Center" Margin="0,337,0,0" VerticalAlignment="Top" RenderTransformOrigin="0.288,0.263" Height="26" Width="38" Click="button2_Click"/><Button x:Name="button3" Content="3" HorizontalAlignment="Left" Margin="451,337,0,0" VerticalAlignment="Top" RenderTransformOrigin="0.288,0.263" Height="26" Width="38" Click="button3_Click"/></Grid>

四、ViewBox

1. 概述

ViewBox類,可以拉伸或縮放控件,使用這個控件使界面隨屏幕尺寸變化而自動縮放。
官方文檔:https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls.viewbox?view=netframework-4.8

在這里插入圖片描述

2. 詳解

ViewBox類的部分屬性如下所示
在這里插入圖片描述

3. 示例

在這里插入圖片描述

總結

  • ShowDialog() 顯示窗口并等待窗口關閉后才返回(模態),Show() 顯示窗口并返回(非模態)
  • ViewBox可使控件內的子控件同步拉伸放大或縮小

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/913523.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/913523.shtml
英文地址,請注明出處:http://en.pswp.cn/news/913523.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

設計模式---觀察者模式(發布-訂閱模式)

設計模式—觀察者模式(發布-訂閱模式) 一、簡介 發布-訂閱模式是一種消息傳遞模式&#xff0c;用于實現對象間的一對多依賴關系。在這種模式中&#xff1a; 發布者&#xff08;Publisher&#xff09;不直接向訂閱者&#xff08;Subscriber&#xff09;發送消息發布者和訂閱者…

一文講清楚React Fiber

文章目錄一文講清楚React Fiber1. 基礎概念1.1瀏覽器刷新率&#xff08;幀&#xff09;1.2 JS執行棧1.3 時間分片1.4 鏈表2. React Fiber是如何實現更新過程控制2.1 任務拆分2.2掛起、恢復、終止2.2.1 掛起2.2.2 恢復2.2.3 終止2.3 任務具備優先級一文講清楚React Fiber 1. 基…

(3)機器學習小白入門 YOLOv: 解鎖圖片分類新技能

(1)機器學習小白入門YOLOv &#xff1a;從概念到實踐 (2)機器學習小白入門 YOLOv&#xff1a;從模塊優化到工程部署 (3)機器學習小白入門 YOLOv&#xff1a; 解鎖圖片分類新技能 前言 YOLOv 算法通常被用于目標檢測任務&#xff0c;但通過對其進行適當的調整和改造&#xff0c…

主機安全-開源HIDS字節跳動Elkeid使用

安裝好elkeid后就開始接入主機和k8s集群&#xff0c;安裝文檔-----主機安全-開源HIDS字節跳動Elkeid安裝-CSDN博客 1、接入主機 在系統管理-----安裝配置-----復制命令------在目標機器上執行這段命令 執行成功后主機就會自動接入 2、接入k8s集群 在k8s主機上執行腳本&#x…

【vue】用conda配置nodejs,一鍵開通模版使用權

特此鳴謝我的好同學重中之重的特級教學&#xff0c;非常之好用一、conda環境下載安裝二、創建包含nodejs的conda環境創建一個新環境&#xff1a;conda create -n 【自定義環境名字】 python3.9 conda create -n my_nodejs_env python3.9激活新環境&#xff1a;conda activate【…

深度學習--tensor(創建、屬性)

一、torch概念1.1簡介pytorch簡稱torch&#xff0c;意為深度學習框架。它使用張量&#xff08;tensor&#xff09;來表示數據&#xff0c;可以輕松地處理大規模數據集&#xff0c;且可以在GPU上加速。pytorch基本功能&#xff1a;自動微分、自動求導等。1.2安裝官網獲得下載命令…

【內存】Linux 內核優化實戰 - net.ipv4.tcp_max_tw_buckets

目錄net.ipv4.tcp_max_tw_buckets 詳解一、基本概念二、核心作用三、默認值四、調整場景需增大參數的場景需減小參數的場景五、查看與修改方法1. 查看當前值2. 臨時修改&#xff08;重啟失效&#xff09;3. 永久修改&#xff08;重啟生效&#xff09;六、注意事項總結net.ipv4.…

短劇系統開發定制全流程解析:從需求分析到上線運營

一、短劇行業現狀與系統開發價值短劇作為一種新興的內容形態&#xff0c;近年來呈現爆發式增長態勢。2023年中國短劇市場規模已突破300億元&#xff0c;用戶規模超過5億&#xff0c;這種以"快節奏、強劇情、低成本"為特點的內容形式正在重塑數字娛樂產業格局。短劇系…

各服務器廠商調整BIOS睿頻教程

調整BIOS睿頻選項匯總&#xff1a;1、華為服務器&#xff1a;2、華為服務器V53、浪潮服務器4、浪潮服務器M45、 曙光服務器5.1 曙光I620-G205.2 曙光I620-G306、聯想服務器&#xff08;650系列&#xff09;650系列的服務器對照截圖信息修改對應項&#xff0c;修改為截圖里的選項…

PyTorch筆記3----------統計學相關函數

1.基礎函數 import torch a torch.rand(2,2) print("a:\n",a) print(########################) print("平均值:\n",torch.mean(a,dim0)) print("總和:\n",torch.sum(a,dim0)) print("所有元素的積:\n",torch.prod(a,dim0)) print(&…

【Prometheus】通過tar包部署單機版Prometheus 和 Pushgateway

在ECS&#xff08;Elastic Compute Service&#xff09;機器上通過tar包部署 Prometheus 和 Pushgateway&#xff0c;并配置 Prometheus 采集 Pushgateway 的數據&#xff0c;是一個常見的監控部署任務。以下是詳細的步驟說明&#xff1a;&#x1f9e9; 環境準備 操作系統&…

Matlab 頻譜分析 (Spectral Analysis)

文章目錄1. 信號預處理 - 去直流分量2. 快速傅里葉變換&#xff08;FFT&#xff09;3. 功率譜密度&#xff08;PSD&#xff09;計算4. 主頻率檢測5. 譜質心計算6. 對數譜顯示完整的信號處理流程實際應用示例1. 信號預處理 - 去直流分量 data data - mean(data);數學原理&…

【實時Linux實戰系列】實時以太網與 TSN 基礎

在實時系統中&#xff0c;網絡通信的實時性和可靠性是確保系統正常運行的關鍵。實時以太網和時間敏感網絡&#xff08;TSN&#xff09;技術為實時數據傳輸提供了強大的支持。TSN通過一系列協議和機制&#xff0c;確保數據能夠在預定的時間內可靠傳輸&#xff0c;滿足工業自動化…

茶顏悅色JAVA面試分享

1、自我介紹項目2、設計一個爆款飲品秒殺系統&#xff1a;如何解決“幽蘭拿鐵”上新時的瞬時10萬QPS&#xff1f;從緩存、限流、庫存扣減到訂單創建的全流程設計。3、訂單超市未支付自動取消&#xff1a;如何實現高精度&#xff08;30分鐘精確到秒&#xff09;且低延遲的訂單狀…

OneCode圖表配置速查手冊

前言 在數據可視化日益成為業務決策核心驅動力的今天&#xff0c;高效、靈活的圖表配置系統已成為開發人員不可或缺的工具。OneCode圖表組件憑借其豐富的圖表類型與精細化的配置能力&#xff0c;為開發者提供了構建專業數據可視化界面的完整解決方案。然而&#xff0c;隨著圖表…

二維碼驅動的獨立站視頻集成方案

一、獨立站視頻嵌入的技術挑戰與架構設計 在獨立站建設中&#xff0c;視頻內容的集成面臨著性能、安全與用戶體驗的三重挑戰。傳統直接嵌入方式會導致頁面加載緩慢&#xff08;平均增加3-5秒首屏時間&#xff09;、服務器帶寬消耗激增&#xff08;單視頻日均播放1000次約產生50…

【STM32】預分頻因子(Prescaler)和重裝載值(Reload Value)

在 STM32 的 獨立看門狗&#xff08;IWDG&#xff09; 中&#xff08;結合上文【STM32】獨立看門狗&#xff08;提供完整實例代碼&#xff09;&#xff09;&#xff0c;為了控制看門狗的超時時間&#xff08;溢出時間&#xff09;&#xff0c;我們主要設置兩個參數&#xff1a;…

從0到1搭建同城O2O外賣平臺:外賣系統源碼架構解析與實戰指南

當下&#xff0c;越來越多的創業者、品牌連鎖商家&#xff0c;甚至社區集群&#xff0c;開始布局屬于自己的本地外賣平臺。而對于軟件開發者和技術團隊而言&#xff0c;如何從0到1搭建一套可落地、可擴展、可持續運營的外賣系統&#xff0c;成為了一個既現實又挑戰性十足的話題…

MySQL 8.0 OCP 1Z0-908 題目解析(16)

題目61 Choose the best answer. Examine this command, which executes successfully: mysqlbackup --defaults-file/backups/server-my.cnf --backup-dir/backups/full copy-backWhich statement is true about the copy-back process? ○ A) It restores files from the da…

WSL命令

以下是 WSL&#xff08;Windows Subsystem for Linux&#xff09;的常用命令大全&#xff0c;涵蓋安裝、管理、網絡、文件交互等場景&#xff0c;方便快速查閱和使用&#xff1a;1. 安裝與版本管理命令說明wsl --install默認安裝 WSL 和 Ubuntuwsl --install -d <發行版名&g…