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

WPF 简单页面切换示例

原理比较简单,但是有个坑,为了使界面能够正确更新,记得使用 INotifyPropertyChanged 接口来实现属性更改通知。

<Window x:Class="PageTest.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:PageTest"mc:Ignorable="d"Title="MainWindow" Height="450" Width="800"><Grid><Grid.RowDefinitions><RowDefinition Height="0.1*"/><RowDefinition/></Grid.RowDefinitions><StackPanel Orientation="Horizontal"><Button Width="50" Height="25" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="5" Click="Button_Click"></Button><Button Width="50" Height="25" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="5" Click="Button_Click_1"></Button></StackPanel><Frame Grid.Row="1" Content="{Binding CurMain}" NavigationUIVisibility="Hidden"></Frame></Grid>
</Window>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;namespace PageTest
{/// <summary>/// Interaction logic for MainWindow.xaml/// </summary>[AddINotifyPropertyChangedInterface]public partial class MainWindow : Window{public MainWindow(){InitializeComponent();DataContext = this;}object curMain;public object CurMain { get => curMain; set => curMain = value; }private void Button_Click(object sender, RoutedEventArgs e){CurMain = new Page1();}private void Button_Click_1(object sender, RoutedEventArgs e){CurMain = new Page2();}}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • SAP_ABAP_消息类型
  • 【Pytorch】一文向您详细介绍 torch.nn.DataParallel() 的作用和用法
  • Web前端高亮:深度解析高亮技术的四个方面、五个方面、六个方面与七个方面
  • 软考 系统架构设计师系列知识点之杂项集萃(33)
  • vue2中封装图片上传获取方法类(针对后端返回的数据不是图片链接,只是图片编号)
  • iCloud完全指南:释放Apple云服务的终极潜力
  • 实验八、地址解析协议《计算机网络》
  • Java学习 - MyBatis - 初识MyBatis
  • MySQL数据库---LIMIT、EXPLAIN详解
  • jmeter并发测试
  • C++中实现一个泄漏检测工具
  • 软考初级网络管理员_01_计算机系统基础知识(硬件)单选题
  • 车载电子电气架构 --- 车载信息安全
  • 优思学院|谈汽车零部件企业生产精益及现场管理
  • 如何做好电子内窥镜的网络安全管理?
  • 【React系列】如何构建React应用程序
  • bootstrap创建登录注册页面
  • E-HPC支持多队列管理和自动伸缩
  • httpie使用详解
  • java8 Stream Pipelines 浅析
  • java第三方包学习之lombok
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • node学习系列之简单文件上传
  • select2 取值 遍历 设置默认值
  • TCP拥塞控制
  • VuePress 静态网站生成
  • 从0到1:PostCSS 插件开发最佳实践
  • 聊一聊前端的监控
  • 我建了一个叫Hello World的项目
  • 学习Vue.js的五个小例子
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • # 详解 JS 中的事件循环、宏/微任务、Primise对象、定时器函数,以及其在工作中的应用和注意事项
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (1) caustics\
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (145)光线追踪距离场柔和阴影
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (备份) esp32 GPIO
  • (第二周)效能测试
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (力扣)1314.矩阵区域和
  • (三)Honghu Cloud云架构一定时调度平台
  • (四) Graphivz 颜色选择
  • (一)Docker基本介绍
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (一)utf8mb4_general_ci 和 utf8mb4_unicode_ci 适用排序和比较规则场景
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • (转)大道至简,职场上做人做事做管理
  • (自适应手机端)行业协会机构网站模板
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .NET 快速重构概要1
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args