WPF 控件【U】UserControl(一) UserControl、ContentControl、Page的区别,及它们的使用方法

您所在的位置:网站首页 wpf窗体调用 WPF 控件【U】UserControl(一) UserControl、ContentControl、Page的区别,及它们的使用方法

WPF 控件【U】UserControl(一) UserControl、ContentControl、Page的区别,及它们的使用方法

2024-07-10 10:21:24| 来源: 网络整理| 查看: 265

一、简介

        本文将介绍用户控件UserControl与Page的区别,及两者的使用方法。

部分参考:

https://www.cnblogs.com/lelehellow/p/6026766.html(重点)

https://www.cnblogs.com/ZXdeveloper/p/4479721.html

https://www.cnblogs.com/denghejun/p/3671061.html

还有其他参考,见下文。

二、UserControl、ContentControl、Page性质、用法

1、三者,一定要放在Window下才能显示。若是在Prism架构中,一定要放在shell才能显示。

2、常情况下,一个window加载多个page,而运行的solution大都是一个window。

3、当微软自带的控件(比如button,canvas等)不足以满足开发者的需求,这是可以用到usercontrol啦。

4、ContentControl用来切换动态内容。

5、其他(若有其他区别,请大家告知我一下,我学习学习。非常感谢)

1、UserControl 1.1、性质

     省略。UserControl是一定要放在Window中才能显示的。

1.2、用法

1.2.1、Window的Xaml直接添加

1.2.2、Window的C#代码中直接添加

public partial class UserControlDemo : Window { public UserControlDemo() { InitializeComponent(); } private void Window_Loaded(object sender, RoutedEventArgs e) { UserControl1 demo = new UserControl1(); this.stackPanel1.Children.Add(demo); } }

或者

1.2.3、Window下Frame.Content加载

https://blog.csdn.net/lordwish/article/details/52667150

UserControl control = obj as UserControl; this.frame1.Content = control; 2、ContentControl 2.1、性质

内容控件ContentControl,往往用来加载动态内容,比如动态加载UserControl.xaml。

2.2、用法

2.2.1、contentControl.Content直接加载UserControl.xaml

contentControl.Content = userControl1

参考:https://blog.csdn.net/xm9304/article/details/46412349

2.2.2、Prism.MVVM架构中ContentControl区域可以动态切换用户控件UserControl

 

2.2.1、Prism.MVVM架构中ContentControl区域 

3、Page 3.1、性质

参考1:https://blog.csdn.net/software_kid/article/details/9339847

Page 是从 UserControl 继承的,Page 封装了对 Frame 的导航,这也是 Page 的最大特点和职责,而 UserControl 没有这个职责。

参考2:https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.controls.page?redirectedfrom=MSDN&view=netframework-4.7.2#适用于

封装一页可由 Windows Internet Explorer、NavigationWindow 和 Frame 导航到和承载的内容。

3.2、用法

     由以上可以知道,Page可以被NavigationWindow 和 Frame加载。但是不同的方法,有缺点不一样。请参考:

https://blog.csdn.net/xpj8888/article/details/83022627

3.2.1、Frame.Navigate导航举例

页面A 页面B private void btnA_Click(object sender, RoutedEventArgs e) { //注意:这里使用Navigate,不用Source,具体区别自己可以试试 this.frmMain.Navigate(new Uri("PageA.xaml", UriKind.Relative)); } private void btnB_Click(object sender, RoutedEventArgs e) { this.frmMain.Navigate(new Uri("PageA.xaml", UriKind.Relative)); }

3.2.2、Frame.Source加载

参考:https://blog.csdn.net/lordwish/article/details/52667150

3.2.3、Frame.Content加载

https://blog.csdn.net/lordwish/article/details/52667150

private void btnA_Click(object sender, RoutedEventArgs e) { PageA a = new PageA(); this.frame.Content = a; a.ParentWindow = this; }

 



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭