top

【WPF学习】第七章 WrapPanel和DockPanel面板

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-09 01:29:06
原文: 【WPF学习】第七章 WrapPanel和DockPanel面板   显然,只使用StackPanel面板还不饿能帮助用户创建出实用的用户界面。要设计出最终使用的用户界面,StackPanel面板还需要与其他更强大的布局容器协作。只有这样才能组装成完整的窗口。   最复杂的布局容器是Grid面板,后面几章会进行介绍。在介绍Grid面板之前,有必要首先看一下WrapPanel和DockPanel面板,它们是WPF提供的两个更简单的布局容器。这两个布局容器通过不同的布局行为对StackPanel面板进行补充。 一、WrapPanel面板   WrapPanel面板在可能的空间中,以一次一行或一列的方式布置控件。默认情况下,WrapPanel.Orientation的属性设置为Horizontal;控件从左向右进行排列,再在下一行中排列。但可将WrapPenel.Orientation的属性设置为Vertical,从而在多个列中放置元素。   下面的示例中定义了一系列具有不同对齐方式的按钮,并将这些按钮放到一个WrapPanel面板中: <Window x:Class="WrapPanelLayout.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x=

布局:上下两个div高度固定,中间自适应

假装没事ソ 提交于 2020-02-08 22:16:26
需求:经典布局 —— 头尾固定高度中间高度自适应布局 头部固定高度,宽度100%自适应父容器; 底部固定高度,宽度100%自适应父容器; 中间是主体部分,自动填满,浏览器可视区域剩余部分,内容超出则中间部分出现流动条; 整个内容填满浏览器可视区域,并且不超出此区域! 方法一:position:absolute定位,不设高,并改变"包含块"的尺寸渲染 固定头尾,所以,至少头和尾要用到position定位。因为浏览器大小是可以调节的,而且不同尺寸,不同分辨率的浏览器可视区域的高度是不固定的, 这就决定是中间主体部分的高度不固定。所以真正的问题核心也正在此。解决了这个问题,整个布局也就解决了一多半 最重要的一段就是中间部分绝对定位,top为头的高度,bottom为尾的高度 <!DOCTYPE HTML> <html> <head> <meta charset="gb2312"> <title>头尾固定中间高度自适应布局</title> <style> html, body { height:100%; margin:0; padding:0 } #dHead { height:100px; background:#690; width:100%; position:absolute; z-index:5; top:0; } #dBody { background:#FC0; width

1.Android网络编程-HTML介绍

孤者浪人 提交于 2020-02-08 00:16:01
1.HTML 介绍 超文本标记语言(HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。 在Eclipse下则可以使用自带的浏览器浏览html: 2.HTML 常用元素标签 <head> 标签用于定义文档的头部 把 <head> 标签放在文档的开始处,紧跟在 <html> 后面 <head> 中的元素可以引用脚本、指示浏览器在哪里找到样式表、提供元信息等等。 下面这些标签可用在 head 部分: <base>, <link>, <meta>, <script>, <style>, <title> 比如: <meta charset="utf-8">: 元标签.告诉浏览器用utf-8编码来解析该文档 <title>123</title>: 用来显示网页的标题 <body> 文档的的内容标签 body 元素包含文档的所有内容(比如文本、超链接、图像、表格和列表等等。) 3.转义标记(空格、<、>、&、"、'、) & :   "& ",quotation mark的缩写 < : "< ",less-than的缩写 > :   "> ", greater than的缩写 " :   "" ", quote的缩写 ' :   "&apos; ",apostrophe的缩写 空格: " " 比如 html中输入:"a a",则只会显示"a a"

【数据结构】顺序栈

荒凉一梦 提交于 2020-02-07 15:46:43
  利用顺序存储方式实现的栈称为顺序栈。类似于顺序表的定义,栈中的数据元素用一个预设的足够长度的一维数组来实现:datatype data[MAXSIZE],栈底位置可以设置在数组的任一个端点,而栈顶是随着插入和删除而变化的,用一个 int top 来作为栈顶的指针,指明当前栈顶的位置,同样将 data 和 top 封装在一个结构中。   顺序栈的类型描述如下: typedef struct { datatype data[MAXSIZE]; int top; }seqStack;   定义一个指向顺序栈的指针: SeqStack *s;   通常0下标端设为栈底,这样空栈时栈顶指针 top=-1;入栈时,栈顶指针加1,即 s->top++;出栈时栈顶指针减1,即 s->top--。   以下是栈的几种基本操作:   (1) 置空栈 seqStack *init_seqStack() { seqStack *s; s = (seqStack *)malloc(sizeof(seqStack)); s->top = -1; return s; }   (2) 判栈空 int empty_seqStack(seqStack *s) { if (s->top == -1) { return TRUE; } return FALSE; }   (3) 判栈满 int full

数据结构-----3.栈:

落爺英雄遲暮 提交于 2020-02-07 11:25:12
1.特点:遵循 “先进后出”的规则,栈主要包含两个操作,“入栈” 和 “出栈”,栈这种数据结构有两种实现方式:1.数组实现,2.链表实现。例如:浏览器的前进和后退功能就可以使用 两个栈 来实现,程序中函数的调用也是通过栈来实现。 基于数组实现的叫做“顺序栈”,基于链表实现的叫做“链式栈”。 空间复杂度的概念:除了必须存储数据的空间外,还需要在程序运行时,需要额外的空间。在栈的入栈和出栈过程中,所需要的空间复杂度为O(1)。 /* * 使用数组来实现一个空间大小固定的栈*/ public class ArrayStack<E> { /*定义一个数组*/ private Object[] elementData; /*该栈空间的大小*/ private int size; /*当前栈中存储元素的个数*/ private int count; public ArrayStack(int size) { this.elementData = new Object[size]; this.size = size; this.count = 0; } /* * 入栈操作*/ public boolean push(Object element) { /*栈中的数组空间如果不够了,那么直接返回false. * 因为count是从0开始的,size是从1开始的,所以当count == size时

POJ 1442 优先队列

谁都会走 提交于 2020-02-07 02:09:14
题意:有一些ADD和GET操作。n次ADD操作,每次往序列中加入一个数,由ADD操作可知序列长度为1-n时序列的组成。GET操作输入一个序列长度,输出当前长度序列第i大的元素的值。i初始为0,每次GET操作i先加1。给出的GET操作输入非降。 思路:求长度为k的序列的第i大元素。优先队列维护最大堆和最小堆分别存放前i-1大的元素和第i-第k大的元素。将当前序列的元素压入最小堆,如果最小堆的最小数大于最大堆的最大数则进行交换,保证最大堆中的所有数小于最小堆。因为i值每进行一次自增1,所以每次GET操作后将最小堆中的最小数弹出存入最大堆。 #include<cstdio> #include<queue> using namespace std; priority_queue<int> bigque; priority_queue<int, vector<int> ,greater<int> > smallque; int num[30010]; int main() { int n,m,x; scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) scanf("%d",&num[i]); int k=1; for(int i=1;i<=m;i++) { scanf("%d",&x); while(k<=x) { smallque.push(num[k]);

Linux Top命令详解

喜欢而已 提交于 2020-02-05 01:47:32
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器 第一行,任务队列信息 同 uptime 命令的执行结果 系统时间:07:27:05 运行时间:up 1:57 min, 当前登录用户: 3 user 负载均衡(uptime) load average: 0.00, 0.00, 0.00 average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。 load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了 第二行,Tasks — 任务(进程) 总进程:150 total, 运行:1 running, 休眠:149 sleeping, 停止: 0 stopped, 僵尸进程: 0 zombie 第三行,cpu状态信息 0.0%us【user space】— 用户空间占用CPU的百分比。 0.3%sy【sysctl】— 内核空间占用CPU的百分比。 0.0%ni【】— 改变过优先级的进程占用CPU的百分比 99.7%id【idolt】— 空闲CPU百分比 0.0%wa【wait】— IO等待占用CPU的百分比 0.0%hi【Hardware IRQ】— 硬中断占用CPU的百分比 0.0%si

图像的旋转缩放平移变换公式

两盒软妹~` 提交于 2020-02-04 08:19:26
图像的旋转缩放平移变换公式 在前两天的应用中,用Flex简单写了一个拖动图片缩放的ObjectHandler控件,当时的功能还比较简单,只有缩放功能,不能平移和旋转。太不完整了! 平移还好,旋转一来,就有点头疼了。旋转必然要涉及旋转中心点的问题。一般的情况是缩放的中心点是图片左上角,旋转的中心点是图片的中心,如果用户每操作一次就要手动去改变一下中心点, 不仅逻辑上繁琐,也给调试带来很大的不便,最后不仅错在哪一步不知道,连怎么错的都不知道!!!。 那么,比较好的解决办法是,指定中心点center,给定平移量shift,缩放量scale,旋转量rotate,及图片的原始宽高size 即可保证图片正确显示。(图片默认缩放中心为左上角) 首先,这里我们需要几个简单的数学变换,主要针对缩放和旋转: OK,想清楚了变换的过程,下面的工作就更加简单了,套用一下公式就行: /** * transforms:{ * shift: {x:'', y:''} * rotate: '', * scale: '' * } * origin: { * originWidth:'', * originHeight: '', * originLeft: '', * originTop: '' * } * * */ private function fixTransformToCenter(center:Point

WPF之路——Canvas布局(画布)

浪子不回头ぞ 提交于 2020-02-04 07:48:21
Canvas为容器控件,用于定位 1.基本应用 可以把 Canvas比作一个坐标系 ,所有的元素通过设置坐标来决定其在坐标系中的位置 .这个坐标系的原点并不是在中央 ,而是位于它的左上角 .见下图 元素设置坐标的方法共有四个: Canvas.Top 设置元素距Canvas顶部的距离 Canvas.Bottom 设置元素距Canvas底部的距离 Canvas.Left 设置元素距Canvas左边界的距离 Canvas.Right 设置元素距Canvas右边界的距离 [html] view plain copy <Border HorizontalAlignment="Left" VerticalAlignment="Top" BorderBrush="Black" BorderThickness="2"> <Canvas Background="LightBlue" Width="400" Height="400"> <Button Canvas.Top="50">Canvas.Top="50"</Button> <Button Canvas.Bottom="50">Canvas.Bottom="50"</Button> <Button Canvas.Left="50">Canvas.Left="50"</Button> <Button Canvas.Right="50"

两个栈共享连续存储单元

。_饼干妹妹 提交于 2020-02-03 20:47:35
两个栈共享连续存储空间:它主要利用了栈底位置不变,栈顶位置动态变化的特性。 所以在定义栈顶指针时,需要定义两个栈顶指针。 双栈类型定义如下: typedef struct { datatype data [ MAXSIZE ] ; int top [ 2 ] ; /* 栈顶指针 */ } DqStack ; 两个共享栈的压栈算法: int push ( STACK * s , ElemType x , int k ) { //将x元素压入到以s为栈空间的第k个栈中 if ( s -> top [ 0 ] + 1 == s -> top [ 1 ] ) { printf ( "\n stack is full!" ) ; return 0 ; } if ( k == 0 ) { s -> top [ 0 ] ++ ; s -> data [ s -> top [ 0 ] ] = x ; } else { s -> top [ 1 ] -- ; s -> data [ s -> top [ 1 ] ] = x ; } return 1 ; } 两个共享栈的出栈算法: int pop ( STACK * s , int k , ElemType * x ) //将以s为栈空间的第k个栈顶元素取出 { if ( ( k == 0 ) && ( s -> top [ 0 ] == - 1 )