可以用jQuery获取到当前的窗口的宽度,来计算iframe的宽和高,示例代码如下:
<iframe src=";jQuery中获取当前窗口的宽度代码是:$(window)width();
窗体属性分为五大模块:窗口的外观、位置、大小、可见性和状态、生命周期。
1、 窗口的外观
WPF中默认窗口框架的外观,主要取决于Icon、Title、WindowsStyle、ResizeMode等属性。
Icon 指定窗口的图标;
Title 指定窗口的标题;
WindowStyle 指定窗口样式,有4个取值:
None,无边框;(当ResizeMode属性为NoResize时,仅剩下窗口核心。)
SingleBorderWindow,单边框默认;
ThreeDBorderWindow,3D边框;
ToolBorderWindow,工具箱窗口
ResizeMode 是指定大小调节样式,有4个取值:
NoResize,不可调节,同时没有最大最小按钮;
CanMinimize,不可调节。但可以最小化;(此时最大化按钮不可用)
CanResize,可调节默认;
CanResizeWithGrid,可根据网格调节;(窗口右下脚显示可调节网格)
2、 窗口的位置
WindowStartLocation 指定窗口初始位置,有3个取值:
Manual,手工指定位置,表示可以通过设置其Top、Left属性值来决定窗口的初始位置;
CenterScreen,屏幕中央;
CenterOwner,父窗体中央;
TopMost 调节窗口的前后顺序,属性值为true时,窗口位于最前。
TopMost值为true的窗口,位于TopMost值为false的窗口之前
TopMost值都为true的窗口,获得焦点的窗口位于前
3、 窗口的大小
Width、Height,分别表示窗口的宽度和高度,称为“尺寸属性”。
MaxWidth、MinWidth、MaxHeight、MinHeight,分别表示窗口最大宽度、最小宽度、最大高度、最小高度。可以通过得到和更改这些属性值,来获取和改变窗口的大小和长宽范围。
ActualWidth、ActualHeight,分别表示窗口的实际宽度和实际高度,称为“实际尺寸属性”。
实际尺寸属性是根据当前窗口大小、最小化时窗口大小和最大化时窗口大小来计算得到的,其值是只读的,也就是说,不能通过改变ActualWidth、ActualHeight的值来更改窗口大小。
SizeToContent,表示窗口大小由内容决定,有4个取值:
Manual,手工默认;
Width,窗体宽度由内容决定;
Height,窗体高度由内容决定;
WidthAndHeight,窗体大小由内容决定;
如果内容尺寸超过了窗口的最大或最小范围,还是以最大/最小范围为主。如果手工指定了窗口的Width、Height 属性,那么SizeToContent将被忽略。
ReSize,窗口大小的可调整性(第1部分已提到)
4、 窗口的可见性和状态
Visibility,窗口可见性,有4个枚举值:
Visiable,可见;
Hidden,隐藏;
Collapsed,折叠。
虽然窗口类认为Collapsed与Hidden一样,但二者区别在于,Hidden仅仅将元素设为不可见,但是元素在画面上依然占有空间;而Collapsed,在不可视的基础上,能将元素在画面上的占位符清除,元素彻底不影响画面。
Show、Hide,显示窗口和隐藏窗口的两个方法。如果窗口的ShowInTaskbar属性值为true,Hide不但隐藏窗口本身,同时隐藏其在任务栏上的图标。
WindowState,窗口状态属性,有3个枚举值:
Normal,正常;
Maximized,最大化;
Minimized,最小化;
RestoreBounds,获取窗口在最小化或最大化之前的大小和位置,有4个枚举值,Top、Left、Width、Height。
5、 窗口的生命周期
关于各事件的描述:
Initialized:当窗口的FrameworkElement底层初始化时触发,即InitializeComponent方法调用时触发。
LocationChanged:窗口被移动时触发。
Activated:窗口被激活时触发。
Deactivated:窗口处于非激活时(即其他窗口处于激活时)触发。
Loaded:显示窗口之前触发。
ContentRendered:当内容显示的时候触发。
Closing:尝试关闭窗口时触发,可以将参数CancelEventArgs的Cancel的属性设置为true,取消关闭 *** 作。
Closed:在窗口关闭后触发该事件,无法取消。
Unloaded:当关闭窗口并且从可视化树移除后触发。
我们先创建一个tk窗口#-- coding:utf-8 --import tkinter#小编这里是python3,使用python2的小伙伴把tkinter换成Tkinter即可,否则报错哦win = tkinterTk()winmainloop()这样我们就创建了一个tk窗口,尽管这个窗口什么都没有。
我们要用到的方法是tk对象提供的winfo_width和winfo_height,从字面上我们都可以理解:winfo_width获得窗口的宽度,winfo_height获得窗口的高度。以上两个方法都是无参方法,通过返回值我们可以获得窗口的宽高。OK,我们插入代码print("当前窗口的宽度为",winwinfo_width())print("当前窗口的高度为",winwinfo_height())
未经芝士统回答便允许不得转载本何文内容,否则将视有为侵可权
这里很多小伙伴就会问了,为什么是1?窗口的宽高绝对不是1。没错,但是程序并没有做错,我们只是少了点什么?我们需要刷新窗口数据,如果小伙伴经常使用tk这个图形库,就会知道,我们使用winfo_width和winfo_height得到的宽高其实是tk初始化时的一个值。此时我们调用update方法,刷新win窗口。winupdate()快看,是不是成功获得了窗口的宽高?
我们可以自定义窗口大小来看数据是否正确。例如小编这里设置窗口大小 = 100 x 100,即宽100px高100pxwingeometry("100x100")这里可能又有小伙伴会问了,为什么宽度又出错了?其实很简单,因为tk帮我们创建了窗口装饰器,装饰器有以下几个部分:图标、标题、最大化、最小化和关闭按钮这些装饰器占据了16个px,其实是15个,还有1个px像素点是作为窗口和装饰器之间的距离红色标记部分所有代码为:#-- coding:utf-8 --import tkinterwin = tkinterTk()wingeometry("100x100")winupdate()print("当前窗口的宽度为",winwinfo_width())print("当前窗口的高度为",winwinfo_height())winmainloop()
在Android系统中,Activity窗口的大小是由WindowManagerService服务来计算的。WindowManagerService服务会根据屏幕及其装饰区的大小来决定Activity窗口的大小。一个Activity窗口只有知道自己的大小之后,才能对它里面的UI元素进行测量、布局以及绘制。本文将详细分析WindowManagerService服务计算Activity窗口大小的过程。
一般来说,Activity窗口的大小等于整个屏幕的大小,但是它并不占据着整块屏幕。为了理解这一点,我们首先分析一下Activity窗口的区域是如何划分的。
我们知道,Activity窗口的上方一般会有一个状态栏,用来显示3G信号、电量使用等图标,如图1所示。
图1 Activity窗口的Content区域示意图
从Activity窗口剔除掉状态栏所占用的区域之后,所得到的区域就称为内容区域(Content Region)。顾名思义,内容区域就是用来显示Activity窗口的内容的。我们再抽象一下,假设Activity窗口的四周都有一块类似状态栏的区域,那么将这些区域剔除之后,得到中间的那一块区域就称为内容区域,而被剔除出来的区域所组成的区域就称为内容边衬区域(Content Insets)。Activity窗口的内容边衬区域可以用一个四元组(content-left, content-top, content-right, content-bottom)来描述,其中,content-left、content-right、content-top、content-bottom分别用来描述内容区域与窗口区域的左右上下边界距离。
我们还知道,Activity窗口有时候需要显示输入法窗口,如图2所示。
图2 Activity窗口的Visible区域示意图
这时候Activity窗口的内容区域的大小有可能没有发生变化,这取决于它的Soft Input Mode。我们假设Activity窗口的内容区域没有发生变化,但是它在底部的一些区域被输入法窗口遮挡了,即它在底部的一些内容是不可见的。从Activity窗口剔除掉状态栏和输入法窗口所占用的区域之后,所得到的区域就称为可见区域(Visible Region)。同样,我们再抽象一下,假设Activity窗口的四周都有一块类似状态栏和输入法窗口的区域,那么将这些区域剔除之后,得到中间的那一块区域就称为可见区域,而被剔除出来的区域所组成的区域就称为可见边衬区域(Visible Insets)。Activity窗口的可见边衬区域可以用一个四元组(visible-left, visible-top, visible-right, visible-bottom)来描述,其中,visible-left、visible-right、visible-top、visible-bottom分别用来描述可见区域与窗口区域的左右上下边界距离。
在大多数情况下,Activity窗口的内容区域和可见区域的大小是一致的,而状态栏和输入法窗口所占用的区域又称为屏幕装饰区。理解了这些概念之后,我们就可以推断,WindowManagerService服务实际上就是需要根据屏幕以及可能出现的状态栏和输入法窗口的大小来计算出Activity窗口的整体大小及其内容区域边衬和可见区域边衬的大小。有了这三个数据之后,Activity窗口就可以对它里面的UI元素进行测量、布局以及绘制等 *** 作了。
从前面Android应用程序窗口(Activity)的绘图表面(Surface)的创建过程分析一文可以知道,应用程序进程是从ViewRoot类的成员函数performTraversals开始,向WindowManagerService服务请求计算一个Activity窗口的大小的,因此,接下来我们就从ViewRoot类的成员函数performTraversals开始分析一个Activity窗口大小的计算过程,如图3所示。
图3 Activity窗口大小的计算过程
这个过程可以分为11个步骤,接下来我们就详细分析每一个步骤。
Step 1 ViewRootperformTraversals
这个函数定义在文件frameworks/base/core/java/android/view/ViewRootjava中,它的实现很复杂,一共有600-行,不过大部分代码都是用来计算Activity窗口的大小的,我们分段来阅读:
[java] view plaincopypublic final class ViewRoot extends Handler implements
ViewParent,
ViewAttachInfoCallbacks {
private void performTraversals() {
final View host = mView;
int desiredWindowWidth;
int desiredWindowHeight;
int childWidthMeasureSpec;
int childHeightMeasureSpec;
Rect frame = mWinFrame;
if (mFirst) {
DisplayMetrics packageMetrics =
mViewgetContext()getResources()getDisplayMetrics();
desiredWindowWidth = packageMetricswidthPixels;
desiredWindowHeight = packageMetricsheightPixels;
} else {
desiredWindowWidth = framewidth();
desiredWindowHeight = frameheight();
if (desiredWindowWidth != mWidth || desiredWindowHeight != mHeight) {
windowResizesToFitContent = true;
}
}
复制代码
这段代码用来获得Activity窗口的当前宽度desiredWindowWidth和当前高度desiredWindowHeight。
以上就是关于html5框架iframe高度和宽度比例如何设置。全部的内容,包括:html5框架iframe高度和宽度比例如何设置。、窗体的属性、在python中窗口的宽度是由什么来表示等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)