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

WPF Frame 简单页面切换示例

原理比较简单,但是有个坑,为了使界面能够正确更新,记得使用 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();}}
}

相关文章:

  • 最短路:spfa算法
  • 分治与递归
  • Java并发编程之线程池源码解析与实现详解
  • 在Java、Java Web中放置图片、视频、音频、图像文件的方法
  • LVGL欢乐桌球游戏(LVGL+2D物理引擎学习案例)
  • SpringSecurity入门(一)
  • TOGAF架构介绍
  • 一文理解什么是k-近邻算法
  • 【网络安全的神秘世界】磁盘空间告急?如何解决“no space left on device”的困扰
  • day38 ● 理论基础 ● 509. 斐波那契数 ● 70. 爬楼梯 ● 746. 使用最小花费爬楼梯
  • 生活使用英语口语柯桥外语学校成人英语学习
  • HBase中Master初始化错误~
  • STM32无法烧写程序的故障排除
  • Flink的简单学习五
  • 鸿蒙开发:【线程模型】
  • Android 控件背景颜色处理
  • android图片蒙层
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • Go 语言编译器的 //go: 详解
  • HTTP 简介
  • IDEA 插件开发入门教程
  • java 多线程基础, 我觉得还是有必要看看的
  • JS变量作用域
  • mongo索引构建
  • orm2 中文文档 3.1 模型属性
  • react-native 安卓真机环境搭建
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • Twitter赢在开放,三年创造奇迹
  • TypeScript迭代器
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 不上全站https的网站你们就等着被恶心死吧
  • 搞机器学习要哪些技能
  • 漂亮刷新控件-iOS
  • 实现简单的正则表达式引擎
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 找一份好的前端工作,起点很重要
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​马来语翻译中文去哪比较好?
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • (南京观海微电子)——I3C协议介绍
  • (一)u-boot-nand.bin的下载
  • (转)http协议
  • (转)使用VMware vSphere标准交换机设置网络连接
  • ..回顾17,展望18
  • .“空心村”成因分析及解决对策122344
  • .net core 6 集成和使用 mongodb
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • .NET企业级应用架构设计系列之结尾篇
  • .Net下的签名与混淆
  • @angular/cli项目构建--Dynamic.Form
  • @Not - Empty-Null-Blank
  • @Repository 注解
  • [ABC294Ex] K-Coloring