WPF选项卡页面分离之Page调用Window类
此项目源码下载地址:https://github.com/lizhiqiang0204/WPF_PageCallWindow
如果Page与Window直接没有任何调用就用这种方法https://www.cnblogs.com/lizhiqiang0204/p/11612383.html就行了,但是如果有调用关系的话,还需在这个方法上进一步增加点内容。
第1步:为每个选项卡添加初始化事件:InitTab1,InitTab2,InitTab3,以及为每个选项卡的Frame起个名字frmPage1,frmPage2,frmPage3.
<Grid>
<TabControl>
<TabItem Header="Page1" Initialized="InitTab1">
<Frame Name ="frmPage1" Source="/WpfApp1;component/Pages/Page1.xaml"/>
</TabItem>
<TabItem Header="Page2" Initialized="InitTab2">
<Frame Name ="frmPage2" Source="/WpfApp1;component/Pages/Page2.xaml"/>
</TabItem>
<TabItem Header="Page3" Initialized="InitTab3">
<Frame Name ="frmPage3" Source="/WpfApp1;component/Pages/Page3.xaml"/>
</TabItem>
</TabControl>
</Grid>
第2步:为每个选项卡初始化事件添加初始化内容
private void InitTab1(object sender, EventArgs e)
{
Page1 a = new Page1();
this.frmPage1.Content = a;
a.ParentWindow = this;
} private void InitTab2(object sender, EventArgs e)
{
Page2 a = new Page2();
this.frmPage2.Content = a;
a.ParentWindow = this;
} private void InitTab3(object sender, EventArgs e)
{
Page3 a = new Page3();
this.frmPage3.Content = a;
a.ParentWindow = this;
}
第3步:为每个Page添加父窗体
public partial class Page1 : Page
{
private MainWindow _parentWin;
public MainWindow ParentWindow
{
get { return _parentWin; }
set { _parentWin = value; }
}
public Page1()
{
InitializeComponent();
} private void Button_Click(object sender, RoutedEventArgs e)
{
ParentWindow.Title = "标题1";
ParentWindow.CallFromChild("Page1");
}
}
因为在选项卡初始化事件中已经将ParentWindow实例化成了MainWindow,(a.ParentWindow = this;这里的this就是MainWindow)所以调用ParentWindow里的属性和方法就等于调用MainWindow里的属性和方法
WPF选项卡页面分离之Page调用Window类的更多相关文章
- WPF 多个选项卡TabControl 页面分离
此项目源码下载地址:https://github.com/lizhiqiang0204/TabControl-page-separation 每个页面的按键处理事件直接对应该页面下的cs文件 Main ...
- 页面对象(Page Object)模式
内容转载自 https://www.cnblogs.com/yytesting/p/6973474.html 页面对象(Page Object)模式是目前自动化测试领域普遍使用的设计模式之一,此模式可 ...
- 5.8 页面对象(Page Object)模式
页面对象(Page Object)模式是目前自动化测试领域普遍使用的设计模式之一,此模式可以大大提高测试代码的复用率,提高测试脚本的编写效率和维护效率,是中级自动化测试工程师的必备技能之一. 1.页面 ...
- WPF MVVM UI分离之《交互与数据分离》 基础才是重中之重~delegate里的Invoke和BeginInvoke 将不确定变为确定系列~目录(“机器最能证明一切”) 爱上MVC3系列~全局异常处理与异常日志 基础才是重中之重~lock和monitor的区别 将不确定变成确定~我想监视我的对象,如果是某个值,就叫另一些方法自动运行 将不确定变成确定~LINQ DBML模型可以对
WPF MVVM UI分离之<交互与数据分离> 在我们使用WPF过程中,不可避免并且超级喜欢使用MVVM框架. 那么,使用MVVM的出发点是视觉与业务逻辑分离,即UI与数据分离 诸如下 ...
- js和vue方法的相互调用(iframe父子页面的方法相互调用)。
项目是前后端不分离的,模板引擎使用的JSP. 但是使用了Vue+ElementUI,这里列举一些常用的调用方式,有时候可能. 在js里调用vue方法 我们需要把方法注册到vue对象之外的页面,所以对与 ...
- aspx页面前端使用js 调用aspx.cs后台的方法,不回传
本次使用 Ajax.dll,AjaxPro.dll 两个类库 1.首先添加引用:Ajax.dll,AjaxPro.dll 文件在 Libiary 目录下 2.配置 WebConfig 属性 将 下面2 ...
- 微信分享功能引入页面-控制分享时候调用的标题、图片、url和微信按钮隐藏显示控制
1.设置分享调用的标题.图片.url预览. 2.控制右上角三个点按钮的隐藏显示(和底部工具栏的显示隐藏--未测试). 3.判断网页是否在微信中被调用. <!doctype html> &l ...
- JavaScript的三种对话框是通过调用window对象的三个方法alert(),confirm()和prompt()
第一种:alert()方法 alert()方法是这三种对话框中最容易使用的一种,她可以用来简单而明了地将alert()括号内的文本信息显示在对话框中,我们将它称为警示对话框,要显示的信息放置在括号内, ...
- vue 单页面(SPA) history模式调用微信jssdk 跳转后偶尔 "invalid signature"错误解决方案
项目背景 vue-cli生成的单页面项目,router使用history模式.产品会在公众号内使用,需要添加微信JSSDK,做分享相关配置. 遇到的问题 相关配置与JS接口安全域名都已经ok,发布后, ...
随机推荐
- [Flask]使用sqlite数据库
app.py from flask import Flask from flask_sqlalchemy import SQLAlchemy import os basedir = os.path.a ...
- 我非要捅穿这 Neutron(一)网络实现模型篇
目录 文章目录 目录 前言 传统网络到虚拟化网络的演进 单一平面网络到混合平面网络的演进 Neutron 简述 Neutron 的网络实现模型 计算节点网络实现模型 内外 VID 转换 网络节点网络实 ...
- Python学习之==>数组(一)
1.定义数组 city = [] # 定义一个空数组 name = ['Jack','Panda','Bob','Franck'] # 根据下标找元素,最前面一个元素的下标是0,最后一个元素下标是-1 ...
- harbor报错解决
1. [root@host-10-1-1-71 harbor]# docker login 10.1.1.71:5000Username (admin): Password: Error respon ...
- CSS元素隐藏
{ display: none; /* 不占据空间,无法点击 */ } /*************************************************************** ...
- Day03:数组 、 继承的意义(上)
继承 面向对象编程三(四)大特征 (抽象),封装,继承,多态什么是继承? 继承是面向对象编程中一种代码复用的方式为什么需要继承? 减少代码冗余,提高程序的可维护性和可扩展性怎样使用继承? 语法: cl ...
- 【VS开发】利用VS2015的工程文件来复制另外一个工程的配置的使用说明
[VS开发]利用VS2015的工程文件来复制另外一个工程的配置的使用说明 标签:[VS开发] 说明:总是有时候会遇到这样的问题,在一个工程中完成了对某些PKG包的包含,包括头文件和库等都能发现,但是我 ...
- JS实现网页选取截屏 保存+打印 功能(转)
源码地址: 1.1 确定截图选取范围 用户在开始截图后,需要在页面上选取一个截图范围,并且可以直观的看到,类似如下效果: image 我们的选取范围就是鼠标开始按下的那个点到鼠标拖动然后松开的那个点之 ...
- IIS配置安卓下载.apk文件
前提:你的.apk文件所在路径正确,例如:www.grainnews.com.cn:8002/Attach/Images/201807/20180712091842127.apk 1.打开IIS 2. ...
- 单例模式 之 单例模式——Holder
之前我写过 单例模式中的饿汉模式和懒汉模式 他们虽然都能实现单例模式 但是优缺点很明显 饿汉模式:不能懒加载(类加载就会被实例化),消耗很大,在并发情况下安全性很高. 懒汉模式:能实现懒加载,但是在并 ...