首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WPF 同一窗口内的多线程多进程 UI(使用 SetParent 嵌入另一个窗口)

WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 发布于 2018-07-11 13:35...如果希望做不同线程的 UI,大家也会想到使用另一个窗口来实现,让每个窗口拥有自己的 UI 线程。然而,就不能让同一个窗口内部使用多个 UI 线程吗?...---- WPF 同一个窗口中跨线程访问 UI 有多种方法: 使用 VisualTarget (本文) 使用 SetParent 嵌入另一个窗口 前者使用的是 WPF 原生方式,做出来的跨线程 UI 可以和原来的...呃……就是 Windows 自诞生以来的那种传统。在传统的 Win32 应用程序中,每一个控件都有自己的窗口句柄,它们之间通过 SetParent 进行连接;可以说一个 Button 就是一个窗口。...可以试试在主线程写一个 Thread.Sleep(5000),在卡顿的事件内,你依然可以拖动子窗口的标题栏进行拖拽。 ?

4.3K10

WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口

当我们对 Window 类型写一个附加属性的时候,在属性变更通知中我们需要判断依赖对象是否是一个窗口。但是,如果直接判断是否是 Window 类型,那么在设计器中这个属性的设置就会直接出现异常。...那么有没有什么方法能够得知这是一个设计时的窗口呢?这样就不会抛出异常,而能够完美支持设计器了。 ---- 方法一:判断设计时属性 WPF 原生自带一个附加属性可以判断一个依赖对象是否来源于设计器。...return true; } } return false; } } 于是,只需要调用一下这个方法即可得到此窗口实例是否是设计时的窗口...: 1 2 3 4 5 6 7 8 9 10 11 12 if (WalterlvDesignTime.IsDesignTimeWindow(d)) { // 检测到如果是设计时的窗口,就跳过一些句柄等等一些真的需要一个窗口的代码调用...} else if (d is Window) { // 检测到真的是窗口,做一些真实窗口初始化需要做的事情。 } else { // 这不是一个窗口,需要抛出异常。

34440
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    把应用置顶显示的小软件Window TopMost控件v1.1

    某些Windows应用程序没有提供使其自身位于最高位置的选项,即使其保持在所有其他窗口之上,而使用Windows Topmost控件则可以将该功能添加到任何窗口中。...,您会看到程序Options,在Windows下,您会找到“打开的窗口列表”,要使任何窗口最顶部,只需单击它-在菜单列表中标记为“最顶部”。...如果您不想使用托盘菜单,可以使用Ctrl + Alt + Space快捷方式将当前选择的窗口锁定在屏幕的顶层。...现在,即使您专注于另一个窗口,该应用程序也将始终停留在顶部,要对其进行解锁,只需再次选择它并使用相同的快捷方式,或者右键单击它的任务栏图标并取消选中窗口下的程序名称即可。...要使窗口始终位于顶部,您有4个选项: 1.选择一个窗口,然后双击系统任务栏中的Windows TopMost Control图标 。

    1.6K30

    (亲测解决)每次打开excel文件都会出现两个窗口,一个是空白的sheet1,另一个是自己的文档

    每次打开Excel(WPS、Office都会出现,当前版本是Office2016)文件都会出现两个窗口,一个是空白的sheet1,一个是自己的文档,实在是很烦 2....因为每次打开一个文件就相当于打开两个,还会让Excel打开速度变慢,在网上找了很多解决办法,卸载重装过,但是都没有解决 二、问题原因 出现这个问题的大部分是程序员电脑(哈哈),原因竟是安装MySQL数据库导致的...【COM加载项】 -> 【取消勾选MySQL For Excel】然后确定 5.再打开Excel,只出现自己打开的文档窗口,问题解决 6.如果关闭电脑再打开后还是有则采取终极方法,在加载项中找到...MySQL的位置,然后在资源管理器中找到并将所示的文件名改一个名称,如序号4所示。...这样一来纵它飞起来也不会打开两个窗口了 3.2 WPS解决步骤 1.WPS中不能在MySQL文件夹中去改名,否则会报错 2.直接在COM加载项中取消MySQL勾选即可 版权声明:

    4.3K31

    System Toolkit Mac中文版(mac系统维护软件)

    System Toolkit Mac是专门为MacOS设计的一体化信息和维护应用程序,提供了系统维护、隐私保护、磁盘清理、电池维护、网络状态监控、网络流量监控等实用的功能,清晰的中文界面,让你操作更方便...System Toolkit在pOrgram本身的macOS菜单栏中显示信息,但也显示有关可配置覆盖窗口或预定义信息面板的信息!...重复的Finder有时复制的文件不会在旧位置删除,浪费了有用的磁盘空间。通过查找文件重复来回收此磁盘空间。不同的文件名无关紧要,它与文件内容有关。...信息面板信息面板在预定义的面板中方便地显示系统信息,该面板始终位于顶部。菜单栏额外您可以选择菜单栏中显示的信息。您可以在几个预定义的小部件之间进行选择,并选择菜单栏中显示的信息。...叠加窗口就像菜单栏一样,信息可以显示在覆盖窗口中,该窗口始终位于其他窗口的顶部。您可以配置显示哪些信息。网络信息System Toolkit会跟踪网络适配器的所有网络流量。

    45620

    测一测你对「Activity」的了解

    通常,应用中的一个Activity会被指定为主Activity,然后,每个Activity可以启动另一个Activity,以执行不同的操作。...此时,该Activity位于Activity堆栈的顶部,并会捕获所有用户输入。应用的大部分核心功能都是在onResume()方法中实现的。...此类输入事件可包括接到来电、用户导航到另一个Activity,或设备屏幕关闭。onResume()回调方法后面总是跟着onPause() 。...onPause() 系统将此方法视为用户将要离开您的Activity的第一个标志(这并不总是意味着Activity会被销毁);此方法表示Activity不再位于前台(在用户处于多窗口模式时Activity...)当屏幕在横向和纵向之间旋转时,是否会崩溃或丢失用户的进度; 5)用户将您的Activity放置在新的窗口环境中,例如画中画 (PIP) 或采用多窗口模式的环境,相关交互页面的展示; 6)当Activity

    89310

    Windows10中的键盘快捷方式

    (在可全屏显示并允许你同时打开多个文档的应用中) Ctrl + A 选择文档或窗口中的所有项目 Ctrl + D(或 Delete) 删除所选的项目,将其移至回收站 Ctrl + R(或 F5) 刷新活动窗口...Ctrl + Shift + 箭头键 当磁贴的焦点放在“开始”菜单上时,将其移到另一个磁贴即可创建一个文件夹 Ctrl + 箭头键 打开“开始”菜单后调整其大小 Ctrl + 箭头键(移至某个项目)+...如果 Cortana 不可用或已关闭,你仍然可以使用搜索。...如果 Cortana 不可用或已关闭,你仍然可以使用搜索。...Windows 徽标键  + Ctrl + F4 关闭你正在使用的虚拟桌面 任务栏键盘快捷方式 按键 操作 Shift + 单击任务栏按钮 打开应用或快速打开另一个应用实例 Ctrl + Shift

    4.5K20

    NetWorker Pro Mac(网速流量显示工具)

    Mac上好用的网速和流量显示工具是哪个?...NetWorker for Mac是一款可以在速度和流量两种模式之间切换的网络监测工具,不仅让您在菜单栏上显示当前的网络上传下载速度,同时,您也可以选择不同的网络模式进行监测。...NetWorker Pro Mac图片NetWorker for Mac软件功能1.完全可自定义的视图 - 您可以选择显示哪些信息并选择许多不同的预定义窗口小部件。2.自动检测当前活动的网络适配器。...3.可选的覆盖窗口始终位于顶部 - 对全屏应用或游戏非常有用。4.可调整的刷新间隔。5.检查您的外部IP地址。6.在字节或位模式之间进行选择。7.支持自动启动。...8.流量概述:如果您使用的是体积限制计划,请使用此功能。

    66020

    System Toolkit for Mac(mac系统维护软件)

    System Toolkit在pOrgram本身的macOS菜单栏中显示信息,但也显示有关可配置覆盖窗口或预定义信息面板的信息!磁盘清洁器删除所有缓存的文件并释放磁盘空间。...信息面板信息面板在预定义的面板中方便地显示系统信息,该面板始终位于顶部。菜单栏额外您可以选择菜单栏中显示的信息。您可以在几个预定义的小部件之间进行选择,并选择菜单栏中显示的信息。...叠加窗口就像菜单栏一样,信息可以显示在覆盖窗口中,该窗口始终位于其他窗口的顶部。您可以配置显示哪些信息。网络信息System Toolkit会跟踪网络适配器的所有网络流量。...隐私保护者删除Cookie,下载历史记录,最近访问过的链接,缩略图以及您可能不希望您的更好的一半了解的所有其他私人数据!...记忆清洁剂System Toolkit还配有一个非常快速的内存清理器,可在几秒钟内释放系统内存。暗模式你可以激活一个美丽的黑暗模式!

    67320

    Android 与 Chrome OS 中针对大屏幕设备的更新

    多任务处理 从 Android 12 开始多任务处理已经成为日常操作,所有应用均可以在多窗口模式下运行。但是需要注意的是应用可能以分屏模式运行或以窗口形式出现在另一个应用旁边。...这是因为所有应用无论是否声明尺寸可切换,都可以在分屏模式或者单独窗口下运行,所以有必要更新您的应用以适配尺寸变化,同时避免应用重启或者进入兼容模式。...在 Samsung Galaxy Z Fold 系列手机中,我们发现其在分屏使用率上高达七倍于其它手机的现象。另一个例子是当大屏幕手机处于不同方向时,窗口带有黑边。...Activity 堆栈 △ Activity 堆栈 我们还会遵循应用中 Activity 的现有排序,识别每个分块中的主副、两个容器或 Activity 堆栈。副容器始终位于主容器之上。...副堆栈中的顶部 Activity 会自动扩展,但如果用户展开设备,可随时再次并排显示。 △ 占位符 这是另一个不同的用例,我们称之为「占位符」。

    2.4K40

    【第3版emWin教程】第41章 emWin6.x窗口管理器基础知识(重要)

    子窗口/父窗口: 子窗口是相对于父窗口定义的。只要父窗口移动,其子窗口就会相应移动。子窗口始终完全包含在其父窗口中,并在必要时被裁剪。具有相同父窗口的多个子窗口被视为“同属”窗口。...桌面窗口: 桌面窗口由窗口管理器自动创建,并且始终覆盖整个显示区域。它始终是最底层的窗口,在没有定义其他窗口时,它是默认(活动)窗口。所有窗口都是桌面窗口的后代窗口(子窗口、孙窗口等)。...各窗口因此可在其他窗口之上或之下出现。将某窗口设置为底部,会将该窗口置于其所有同属窗口(如果有的话)的底部;设置为顶部,则将其置于其同属窗口的顶部。...窗口管理器发送WM_PAINT消息到透明窗口之前,位于透明窗口下面的区域已经重绘 (通过发送一条WM_PAINT消息到下面窗口)。...窗口管理器不会自动重绘桌面窗口的区域,因为没有设置自动重绘,也就是说如果创建了另一个窗口然后将其删除,则删除的窗口仍然可见。

    1.6K20

    Ubuntu 17.10 已经发布,图解新功能

    现在是GNOME Shell的定制版本 ,表面上接近Unity桌面布局(但不是类似的替代)。 Ubuntu 17.10桌面使用两个面板布局:一个全高的垂直底座位于屏幕的左侧,而顶部的面板则被剥离。...当一个窗口触及任何一个元素时,“动态透明度”功能就会启动,以使底座和顶部颜色变暗,从而使面板标签内容在前景更加清晰。...您可以通过Ubuntu Dock管理运行的应用程序,也可以使用“ 活动”屏幕。 只需按Super / Windows 键(或单击Ubuntu Dock顶部的“活动”标签)即可触发窗口。...可以一目了然的看到更多的已安装的软件,而不是Unity Dash中提供的截图。 应用程序按字母顺序排列,可滚动页面。...Wayland是默认显示服务器 另一个主要的变化中,Ubuntu 17.10使用Wayland作为其默认显示服务器,用于新的安装和升级。

    1.8K90

    Unity基础教程系列(新)(一)——游戏对象和脚本(Creating+a+Clock)

    我们将使用标准的3D模板。创建之后,它将添加到项目列表中,并在相应版本的Unity编辑器中打开。 是否可以使用其他渲染管线创建项目?...它的顶部是带有对象名称的标题,以及一些配置选项。默认情况下,对象是启用的,不是静态的,没有标签,位于默认层上。这些设置可以使用,但名称除外。将其重命名为Clock。 ?...(选中clock之后,检视窗口的显示) Title下方是游戏对象所有组件的列表。该列表始终在顶部有一个Transform组件,这是我们当前所有的时钟。它控制游戏对象的位置,旋转和比例。...还要将其Z位置更改为-0.35,使其位于小时臂的顶部。请注意,这适用于手臂,而不是其枢轴。 ? (调整分针的Transform) 调整秒针。...尽管编译器会自动将它们转换,但通过向它们添加f后缀,我们可以使我们清楚所有数字均为float类型。 ? 每小时度数始终相同。

    4.3K20

    JavaScript 高级程序设计(第 4 版)- BOM

    window 对象在浏览器中有两重身份,一个是 ECMAScript 中的 Global 对象,另一个就是浏览器窗口的 JavaScript 接口。...)窗口,即浏览器窗口本身 parent对象始终指向当前窗口的父窗口 如果当前窗口是最上层窗口,则parent等于top(都邓鼓window) self对象是终极window属性,始终指向window(...self 和 window实际是同一个对象,之所以暴露self,是为了和top、parent保持一致) # 窗口位置与象素比 screenLeft和screenTop属性用于表示窗口相对于屏幕左侧和顶部的位置...三个方法都接收表示相对视口距离的x和y坐标,前两个表示要滚到的坐标,最后一个表示滚动的距离 这几个方法都接收一个ScrollToOptions对象,除了提供偏移值,还可以通过behavior属性告诉浏览器是否平滑滚动...,需要开发者自己管理 某些浏览器中,每个标签页会运行在独立进程中,如果一个标签打开了另一个,而window对象需要和另一个标签页通信,则新标签页不能运行在独立进程中(在这些浏览器中,将新开标签页的opener

    1.2K10

    BI使用参数

    参数用作轻松存储和管理可重用的值的方法。参数可以灵活地根据查询值动态更改查询的输出,并可用于:更改特定转换和数据源函数的参数值。自定义函数中的输入。可以在 “管理参数 ”窗口中轻松管理参数。...使用“管理参数”窗口:从“开始”选项卡中“管理参数”下拉菜单中选择“新建参数”选项。或启动“管理参数”窗口,然后选择顶部的“新建”以创建参数。 填写此表单,然后选择“ 确定 ”以创建新参数。...创建参数后,始终可以返回到 “管理参数 ”窗口,随时修改任何参数。参数属性参数存储可用于Power Query转换的值。 除了参数的名称及其存储的值之外,它还具有提供元数据的其他属性。...必需:该复选框指示后续用户是否可以指定是否必须提供参数的值。类型:指定参数的数据类型。 建议始终设置参数的数据类型。 若要详细了解数据类型的重要性,请转到 数据类型。...在何处使用参数参数可以采用许多不同的方式使用,但在两种方案中更常用:步骤参数:可以使用参数作为从用户界面 (UI) 驱动的多个转换的参数。

    2.7K10

    终端SSH工具:SecureCRT for Mac

    SecureCRT for Mac图片1、标签会话选项卡式会话可减少桌面混乱,并使在会话之间轻松切换。从URL或命令行在当前窗口中启动新选项卡。...将活动选项卡发送到新窗口,在新窗口中克隆选项卡式会话,或在窗口之间拖放会话。2、标签组使用选项卡组在更短的时间内完成更多工作。在标签中组织的会话之间轻松切换。...或者创建一个临时选项卡组,以便在监视另一个选项卡的命令输出时可以在一个选项卡中工作。3、平铺通过命令窗口向所有会话发送命令时,平铺会话可以更轻松地比较多个会话或查看输出。会话可以平铺或级联。...会话管理器窗格可以位于SecureCRT窗口的左侧,右侧,顶部或底部,也可以作为无模式对话框取消停靠。仍支持“经典”“连接”对话框。会话管理器筛选条有助于在会话数据库中快速定位会话。...7、会话状态信息选项卡状态指示器使用图标(所有平台)或背景颜色(仅限Windows)显示连接状态,以显示会话是已连接,已断开连接,是否已接收新输入,还是没有新活动,以及选项卡是否已锁定。

    2.1K00

    对话框、模态框和弹出框看起来很相似,它们有何不同?

    轻度关闭 vs 显式关闭 需要考虑的另一个方面是用户如何关闭组件,以及是否受到其他元素的影响:这可以分为显式关闭和轻度关闭。...它通常不是其他内容的自然流的一部分,因此它可能会 (并且通常会) 覆盖其他内容。MDN 将其描述为“子窗口”,ARIA 创作实践将其定义为“覆盖在主窗口或另一个对话窗口上的窗口”。...一个警告对话框出现,询问您是否真的想“离开”,不需要先“保存您的更改”吗。 特征 警告对话框始终是模态的,并且它们的焦点是固定的。它们也需要一个易于访问的名称。...Twitter 上带有 fritz kola 瓶的图片,左下角是一个 ALT 徽章,从中展开一个弹出窗口,上面写着图像描述,描述瓶子,然后有一个大的 Dismiss 按钮 图片 Twitter 的替代文本功能是弹出窗口的另一个示例...他们可能需要查看标签以确定您是否需要出生国或居住国。最好采用非模态对话框,因为用户可能想查看其他内容。 定义弹出窗口 您正在构建一个可切换提示符,用于在内容中显示复杂单词的定义。

    4K00

    用 PyQt 打造具有专业外观的 GUI

    如果您运行该应用程序,则会看到类似以下的窗口: ? 在此应用程序中,您将两个不同的布局嵌套在外部布局下,以为窗口创建常规布局。在窗口顶部,使用水平布局放置标签和行编辑。...换句话说,您的GUI将始终向用户显示相同的窗口小部件集。 有时您需要创建一个布局,以显示一组不同的窗口小部件,以响应GUI上的某些用户操作。...创建小部件堆栈 QStackedLayout提供了一个布局管理器,该管理器允许您将小部件排列在一个堆栈上,一个放在另一个上。在这种布局中,给定时间仅可见一个小部件。...在这种情况下,您的应用程序布局中有两个页面。每个页面由一个QWidget对象表示。当您在窗口顶部的组合框中选择一个新页面时,布局将更改以显示所选页面。...您可以使用选项卡栏在页面之间切换,并使用页面区域显示与所选选项卡关联的页面。 默认情况下,选项卡栏位于页面区域的顶部。

    2.8K30
    领券