WPF —— Border、Frame控件详解

一:Border控件

1.Border介绍

 Border(边框)是一个装饰的控件,此控件绘制一个边框、一个背景。用border标签包括目标标签。 不能有多个子元素,要想有多个子元素,多个子元素放在一个父元素下。或者放到grid标签下 

2.Border 常用的属性

Background:填充 Border 边界之间的区域或者说是绘制该区域的背景。

BorderBrush:用于绘制外部边框颜色。

BorderThickness:设置 Border 边框的宽度,

CornerRadius:表示将 Border 的角到圆的程度,设置四周的圆角大小。当数值为50的时候,Border变圆。

3.关于Border的示例
<Grid><Border Width="100" Height="100"Background="LightBlue" BorderBrush="Red" 
BorderThickness="2,2,2,2" CornerRadius="20" ><Label Width="100" Height="100" Background="Transparent" 
Content="中国" HorizontalContentAlignment="Center" 
VerticalContentAlignment="Center" FontSize="30"/></Border>
</Grid>

二:Frame控件

1:frame常用的属性

frame 承载页面的标签

source : 承载页面的网址,也可以是自己项目里的页面

<!--source路径修改成 Source="/Pages/MyPage.xaml" 网络路径-->
<!--Source="../Pages/MyPage.xaml" 相对路径-->
<!--./windowBorder.xaml-->
<!--../Pages/MyPage.xaml-->

NavigationUIVisibility 属性 显示出一个自动记录前进后退导航的UI

LoadCompleted 页面加载完成之后的事件 根据对应的函数用来验证页面是否加载完成

2:关于Frame示例
 <Frame Name="f1" Source="../Pages/MyPage.xaml" VerticalAlignment="Top" HorizontalAlignment="Center" Margin="30,80" Width="700" Height="300"NavigationUIVisibility="Visible"LoadCompleted="f1_LoadCompleted" 
></Frame>

fram加载自己页面的时候、页面加载完毕后的事件

如何创建页面
    1 点击项目 右键 新建wpf页面
    2 页面的根元素是page标签
    3 窗口的根元素是window标签

实例如下

<Page x:Class="WPFProgram.Pages.MYPage"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:WPFProgram.Pages"mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800"Title="MYPage"><Grid Background="LightPink"><Label Width="300" Height="40" Content="我叫大帅你记住,智游集团我最帅" FontSize="20" /></Grid>
</Page>

使用代码进行页面跳转 跳转的三个方法

<Button Click="Button_Click" Width="100" Height="40" Margin="223,22,477,373" Content="跳转">
</Button>

private void f1_LoadCompleted(object sender, System.Windows.Navigation.NavigationEventArgs e)
{//e.ExtraData; 取出页面的参数,例如传递张三object e1 = e.ExtraData;if(e1!=null){// 首次打开窗口显示百度页面,百度页面没有传参数,所以// e1是null,点击跳转按钮,加载自己页面的,传递是张三,所以e1就是张三MessageBox.Show("页面加载完毕:" + e1.ToString());}
}// 按钮的点击事件
private void Button_Click(object sender, RoutedEventArgs e)
{//1 第一种使用frame的source属性进行跳转// new uri("网址")// this.f1.Source = new Uri("https://www.sina.com.cn/");//new uri("网址","网址的类型包含绝对路径和相对路径")//this.f1.Source = new Uri("https://www.sina.com.cn/", UriKind.Absolute);//2第二种跳转方式 使用Navigate进行跳转// this.f1.Navigate(new Uri("https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls.frame.navigate?view=windowsdesktop-8.0&devlangs=csharp&f1url=%3FappId%3DDev16IDEF1%26l%3DZH-CN%26k%3Dk(System.Windows.Controls.Frame.Navigate)%3Bk(DevLang-csharp)%26rd%3Dtrue"));// 跳转到自己的页面 Pages/MyPage.xaml//MyPage p = new MyPage(); //创建页面对象//this.f1.Navigate(p); // 跳转到当前页面上//3第三种跳转方式 使用navigate跳转传参数MyPage p1 = new MyPage();this.f1.Navigate(p1, "张三"); //参数1是跳转的页面对象,参数2是传递参数//参数可以在页面的加载完毕的事件中取出参数值 在上面的f1_LoadCompleted函数中取出张三的值
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/520732.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

备忘 clang diagnostic 类的应用示例 ubuntu 22.04

系统的ncurses环境有些问题 通过源码安装了ncurses6.3后&#xff0c;才可以在 llvmort-18.1.rc4中编译通过示例&#xff1a; 1&#xff0c;折腾环境 ncurses-6.3$ ./configure ncurses-6.3$ make -j ncurses-6.3$ sudo make install sudo apt install libtinfo5 sudo…

『运维备忘录』之 iptables 防火墙使用指南

前言 iptables 是一个配置 Linux 内核防火墙的命令行工具&#xff0c;它是用来设置、维护和检查Linux内核的IP包过滤规则的。本文将介绍 iptables 的基础知识和使用示例。 注意&#xff1a;红帽/红旗/CentOS等 7 版本以上已改为使用 firewalld 作为防火墙替换iptables。 一、基…

基于亚马逊云科技新功能:Amazon SageMaker Canvas 无代码机器学习—以构建货物的交付状态检测模型实战为例深度剖析以突显其特性

授权说明&#xff1a;本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在亚马逊云科技开发者社区、 知乎、自媒体平台、第三方开发者媒体等亚马逊云科技官方渠道。 亚马逊云科技 2023 re:Invent 全球大会是亚马逊云科技举办的一场技术盛会&#xff0c;…

项目解决方案:视频监控接入和录像系统设计方案(上)

目 录 1.概述 2. 建设目标及需求 2.1建设总目标 2.2 需求描述 2.3 需求分析 3.设计依据与设计原则 3.1设计依据 3.2 设计原则 &#xff08;1&#xff09;、先进性与适用性 &#xff08;2&#xff09;、经济性与实用性 &#xff08;3&#xff09;、可靠性与…

centos离线安装 k8s (实操可用)

全部安装包rpm下载&#xff08;已整理好k8s和docker&#xff09;&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1ATv8BPijhvIKWz4hMnkx6Q?pwdt5db 提取码&#xff1a;t5db 将文件下载以后&#xff0c;解压到服务器 #执行所有docker-rpm包 yum -y localinstall *.rpm…

Java面试(4)之 Spring Bean生命周期过程

一, 整个加载的完整链路图 更详细的生命周期函数链路图(仅供参考) 二, Bean实例化的四种方式: 1, 无参构造器(默认且常用)6 2, 静态工厂方法方式(factory-method指定实例化的静态方法) 3, 实例工厂方法方式(factory-bean指定bean的name,factory-method指定实例化方法) 4, 实…

NineData与OceanBase完成产品兼容认证,共筑企业级数据库新生态

近日&#xff0c;云原生智能数据管理平台 NineData 和北京奥星贝斯科技有限公司的 OceanBase 数据库完成产品兼容互认证。经过严格的联合测试&#xff0c;双方软件完全相互兼容、功能完善、整体运行稳定且性能表现优异。 此次 NineData 与 OceanBase 完成产品兼容认证&#xf…

3.7作业

一 1&#xff09;应用层 负责处理不同应用程序之间的通信&#xff0c;需要满足提供的协议&#xff0c;确保数据发送方和接收方的正确 应用层提供的协议&#xff1a; &#xff08;2&#xff09;表示层 负责网络中通信的数据的编码和格式&#xff0c;确保通信过程中…

【Proteus仿真】【STM32单片机】井盖安全检测装置设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真STM32单片机控制器&#xff0c;使用LCD1602液晶显示模块、WIFI模块、蜂鸣器、LED按键、ADC PCF8591、角度/可燃气检测传感器等。 主要功能&#xff1a; 系统运行后&#xff0c;LC…

C# 由左上、右下两个坐标点计算矩形的长、宽以及两点的距离

一、计算长、宽 直接使用坐标点计算 // 定义矩形左上角和右下角的坐标 Point topLeft new Point(0, 0); Point bottomRight new Point(5, 10); // 计算矩形的长和宽 int width bottomRight.X - topLeft.X;//矩形宽度 int height bottomRight.Y - topLeft.Y;//矩形高度或是…

Github 2024-03-08 Java开源项目日报 Top10

根据Github Trendings的统计,今日(2024-03-08统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Java项目9C++项目1非开发语言项目1《Hello 算法》:动画图解、一键运行的数据结构与算法教程 创建周期:476 天协议类型:OtherStar数量:63556…

linux上安装fastdfs及配置

一、基础环境准备 1、所需软件 名称说明libfastcommonfastdfs分离出的一些公用函数包fastdfsfastdas软件包fastdfs-nginx-modulefastdfst和nginx的关联模块nginxnginxl软件包 2、编辑环境 安装一些基础的支持环境 yum install git gccc gcc-c make automake autoconf libto…