跳转到主内容

View

创建和布局原生视图。

进程: 主进程

app 模块出发 ready 事件之后方可使用这个模块。

const { BaseWindow, View } = require('electron')

const win = new BaseWindow()
const view = new View()

view.setBackgroundColor('red')
view.setBounds({ x: 0, y: 0, width: 100, height: 100 })
win.contentView.addChildView(view)

View 类

一个原生的视图。

进程: 主进程

View 是一个 EventEmitter

警告

Electron 的内置类,不能被继承。 更多信息可以查看 常见问答

new View()

创建一个新的 View

实例事件

new Menu 创建的对象可以触发以下事件:

事件 'bounds-changed'

Emitted when the view's bounds have changed in response to being laid out. The new bounds can be retrieved with view.getBounds().

实例方法

Objects created with new View have the following instance methods:

view.addChildView(view[, index])

  • view View - Child view to add.
  • index Integer (optional) - Index at which to insert the child view. Defaults to adding the child at the end of the child list.

If the same View is added to a parent which already contains it, it will be reordered such that it becomes the topmost view.

view.removeChildView(view)

  • view View - Child view to remove.

If the view passed as a parameter is not a child of this view, this method is a no-op.

view.setBounds(bounds[, options])

  • bounds Rectangle - New bounds of the View.
  • options Object (optional) - Options for setting the bounds.
    • animate boolean | Object (optional) - If true, the bounds change will be animated. If an object is passed, it can contain the following properties:
      • duration Integer (optional) - Duration of the animation in milliseconds. 默认值为250
      • easing string (optional) - Easing function for the animation. Default is linear.
        • 线性
        • ease-in
        • ease-out
        • ease-in-out

view.getBounds()

Returns Rectangle - The bounds of this View, relative to its parent.

view.setBackgroundColor(color)

  • color string - Color in Hex, RGB, ARGB, HSL, HSLA or named CSS color format. The alpha channel is optional for the hex type.

Examples of valid color values:

  • Hex
    • #fff (RGB)
    • #ffff (ARGB)
    • #ffffff (RRGGBB)
    • #ffffffff (AARRGGBB)
  • RGB
    • rgb\(([\d]+),\s*([\d]+),\s*([\d]+)\)
      • e.g. rgb(255, 255, 255)
  • RGBA
    • rgba\(([\d]+),\s*([\d]+),\s*([\d]+),\s*([\d.]+)\)
      • e.g. rgba(255, 255, 255, 1.0)
  • HSL
    • hsl\((-?[\d.]+),\s*([\d.]+)%,\s*([\d.]+)%\)
      • e.g. hsl(200, 20%, 50%)
  • HSLA
    • hsla\((-?[\d.]+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)
      • e.g. hsla(200, 20%, 50%, 0.5)
  • Color name
    • Options are listed in SkParseColor.cpp
    • 类似 CSS Color Module Level 3 关键字,但大小写敏感。
      • e.g. blueviolet or red
note

Hex format with alpha takes AARRGGBB or ARGB, not RRGGBBAA or RGB.

view.setBorderRadius(radius)

  • radius Integer - Border radius size in pixels.
note

The area cutout of the view's border still captures clicks.

view.setBackgroundBlur(blurRadius)

  • blurRadius Integer - The radius of the background blur effect (in pixels).
note

You must set a background color with an alpha channel (e.g. #80ffffff) in order for the blur effect to be visible.

view.setVisible(visible)

  • visible boolean - If false, the view will be hidden from display.

view.getVisible()

Returns boolean - Whether the view should be drawn. Note that this is different from whether the view is visible on screen—it may still be obscured or out of view.

实例属性

使用 new View 创建的对象具有以下属性:

view.children Readonly

A View[] property representing the child views of this view.