当前位置: 首页 > news >正文

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.xdnf.cn/news/1081153.html

相关文章:

  • 「Java案例」鸡兔同笼问题
  • [Linux]内核如何对信号进行捕捉
  • JavaWeb笔记05
  • 论文解读:《DeepGray:基于灰度图像和深度学习的恶意软件分类方法》
  • 408第三季part2 - 计算机网络 - 计算机网络基本概念
  • FastAPI 小白教程:从入门级到实战(源码教程)
  • 学习者的Python项目灵感
  • WPF 右键菜单 MenuItem 绑定图片时只显示最后一个 Icon
  • 【python实用小脚本-128】基于 Python 的 Hacker News 爬虫工具:自动化抓取新闻数据
  • 第二章-AIGC入门-开启AIGC音频探索之旅:从入门到实践(6/36)
  • 玩转n8n工作流教程(一):Windows系统本地部署n8n自动化工作流(n8n中文汉化)
  • 【基础算法】贪心 (二) :推公式
  • 基于大模型的强直性脊柱炎全周期预测与诊疗方案研究
  • 算法学习笔记:6.深度优先搜索算法——从原理到实战,涵盖 LeetCode 与考研 408 例题
  • 风平浪静、无事发生
  • 八股学习(三)---MySQL
  • 【C语言刷题】第十天:加量加餐继续,代码题训练,融会贯通IO模式
  • 类图+案例+代码详解:软件设计模式----原型模式
  • WPF+HelixToolkit打造炫酷自定义3D贴图立方体盒子模型
  • goole chrome变更默认搜索引擎为百度
  • 篇二 OSI七层模型,TCP/IP四层模型,路由器与交换机原理
  • SpringBoot-规划多模块目录结构
  • 从0开始学习R语言--Day38--辛普森多样性指数
  • Nuxt 3 面试题合集(中高级)
  • vue3 获取选中的el-table行数据
  • 浅谈 webshell 构造之如何获取恶意函数
  • 「AI产业」| 《中国信通院华为:智能体技术和应用研究报告》
  • Response对象
  • Excel 如何处理更复杂的嵌套逻辑判断?
  • 网安系列【4】之OWASP与OWASP Top 10:Web安全入门指南