问题标签 [redraw]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
3786 浏览

winforms - 在 .NET WInForms 中,什么可能导致 64 位 vista 上而不是 32 位上的重绘问题?

在为 Any Cpu 编译以及编译到 x86 时会发生这种情况。除非调整大小,否则 GUI 的部分不会重绘,例如,如果主窗体最大化,则某些控件不会随之调整大小,而其他部分则不会重绘并显示以前存在的内容。

这在 32 位机器上运行良好,包括 XP 和 Vista,但在 64 位 Vista 上(没有 x64 XP 可以测试)重绘就不能正常工作。

有人对从哪里开始追踪这个有任何想法吗?

编辑:这发生在两台不同的机器上,至少我目前使用的那台机器拥有来自 NVidia 的最新驱动程序。

Edit2:在我的 64 位机器上运行 32 位 XP 虚拟机,并且应用程序在 VM 中没有出现重绘问题

Edit3:这可能是驱动程序问题,但我们不知道驱动程序是否或何时会解决该问题。一位同事说,家里的 ATI 卡问题比 NVidia 少,但在过去的几个月里,我几乎每个月都在更新我的视频驱动程序,但仍然没有解决,所以我们不能只发布我们的产品并告诉我们的客户有一天驱动程序制造商可能会解决这个问题。

有没有人对要避免的事情有任何见解?我们正在编译为 x86,我们所有的组件都是 x86。我似乎无法用测试项目中的任何组件重现此问题,而且我还没有听到其他人在大多数组件论坛上报告这些问题,因此很可能这是我们正在做的事情。

0 投票
5 回答
12812 浏览

.net - 我可以在执行所有更新之前暂停重绘表格吗?

使用 C# 和 .Net 2.0,我使用不规则形状的表单(TransparencyKey、FormBorderStyle = None 等),并希望允许“正常”边框模式。

我将背景颜色从 Lime 更改为默认值 我将 FormBorderStyle 更改为 FixedSingle 我将 TransparencyKey 更改为 Colour.None

不幸的是,这在屏幕上看起来完全是一团糟,图像向下和向侧面跳跃了几个像素,形成了石灰绿色。

我认为这是由于在每行代码之后重新绘制表单造成的,是否可以暂停绘制表单,直到我进行更改然后重新绘制一次表单?

G

0 投票
2 回答
1761 浏览

wpf - WPF列表框不重绘

我在 XAML 中定义了一个列表框:

SelectedDirectories 是列表 DataContext 类型的属性List<DirectoryInfo>

作为列表框数据上下文的类实现了 INotifyPropertyChanged。当集合更改时,项目已成功添加到列表中,但是显示不会更新,直到我通过调整列表框的大小来强制重新绘制。

任何想法为什么?

编辑:INotifyPropertyChanged 实现

0 投票
1 回答
900 浏览

javascript - 如何在 JQuery UI Draggable 元素的启动事件处理程序期间使 css 位置更改生效?

我有一个奇怪的情况,我需要在用户开始拖动它时立即修改可拖动元素的位置。因此,在可拖动元素的启动事件处理程序期间,我试图设置位置。它不会响应位置更改,除非 - 这很奇怪 - 我在更改位置后做了一些导致 javascript 错误的事情。这是一个例子:

在这种情况下,我怎样才能合法地导致重绘发生?JQuery 的 hide() 和 show() 不起作用,这些方法也不起作用。

0 投票
6 回答
29847 浏览

apache-flex - 强制 Flex 更新屏幕?

这可能是一个初学者的问题,但我一生都无法弄清楚。

我正在使用 flex 为一个大型项目开发 GUI,特别是底部的状态栏。在我的 StatusBar 类中有一个 ProgressBar,其他正在工作的类可以告诉它们在进展时更新(更改栏完成和标签)。我遇到的问题是 flex 不会更新屏幕上显示的内容,直到为时已晚,例如

ProgressBar 已初始化,0% 已完成
某些类将 ProgressBar 设置为 12% 已完成
某些类已完成某些工作
某些类将 ProgressBar 设置为 56% 已完成

发生的事情是 12% 的完成从未显示,它只是在工作期间挂在 0%,然后直接跳到 56% 完成。我试图理解一个 flex 组件的生命周期(失效和验证),我想我理解它并且正确地应用它,但它根本不起作用。我需要告诉 flex 在某些类将其设置为 12% 完成后重绘我的 StatusBar(或至少是其中的 ProgressBar) ,但在某些类开始工作之前。我该怎么做呢?

0 投票
3 回答
17798 浏览

layout - SWT 更新/重绘/布局问题

我知道很多人都遇到过这个问题,但是我在网上找到的解决方案似乎没有解决我的问题。我有一个具有三个按钮的复合材料。我想要的是以下内容:当我单击一个按钮时,我希望其他一些按钮变灰( setEnabled(false) ),一段时间后(在方法执行之后),我希望再次启用该按钮。

很多这样的问题可以通过调用父容器的 layout() 方法来解决,或者这个非常相似的问题可以通过调用 Display.getCurrent().update() 来解决;

简单地说,我的代码可以总结如下:

发生的情况是,在到达 widgetSelected() 方法的末尾后,按钮被禁用。但是,标签会经常更新而没有任何问题(即使 label.update() 方法不存在)

附加信息:说,我禁用按钮,然后放一个 Thread.sleep() 然后启用按钮;它首先休眠,然后快速禁用和启用按钮。所以我相信所有这样的绘画请求都会排队并在执行结束时处理。

有用信息:我意识到,当我在显示更改后立即创建并显示 MessageBox 时,显示更改就会发生。因此,如果我在 widgetSelected 方法中进行以下更改:

调用 widgetSelected() 方法后,该按钮将显示为灰色。这让我相信我的解决方案在于 Display.getCurrent() 方法。但是,我尝试了

方法,他们没有解决我的问题。

谢谢, 埃格

0 投票
2 回答
1408 浏览

graphics - Silverlight DataGrid 重绘问题

我有一个 Silverlight DataGrid,其中包含一个显示用户控件的模板列。用户控件有一个进度条来表示处理,当处理完成时,动画会隐藏进度条并显示完成的标签。

在两种情况下,数据网格似乎不会重绘自身:

首先,当用户进行大量滚动时,数据网格将首先在用户控件进入视图时重绘动画,并最终达到不重绘任何内容的地步。

其次,用户控件中有一个显示弹出窗口的单击事件。当弹出窗口关闭时,用户控件再次无法正确重绘自身。

关于为什么会发生这种行为以及解决方法的任何想法?

0 投票
3 回答
857 浏览

actionscript-3 - flex 应用程序中出现故障的屏幕重绘?

我有一个基于 flex/actionscript 的项目。该项目具有各种视图堆栈和选项卡导航器以及一些弹出窗口。整个事情都在 pureMVC 框架中进行管理。

在各种视图状态之间转换、打开弹出窗口、切换选项卡等时,我发现该应用程序出现各种重绘故障。部分视图将被部分绘制或以奇怪的方式闪烁。我相当有信心代码可以正常工作,但这似乎是 UI 整体沉重的问题。

这是一个常见问题吗?他们是否有经过验证的真实技术来优化这个问题?

特别是哪些事件处理程序可用于延迟视图组件的绘制,直到一切都准备好快速显示到屏幕上的最后一刻?

例如,我在视图堆栈中有一个 VBox,在这个 VBox 中我有一个相当复杂的数据网格。我可以准备数据网格和/或延迟视图堆栈更改,直到所有子视图组件实际上都准备好快速绘制。

这种故障有哪些可能的症状?

0 投票
2 回答
894 浏览

visual-studio-2008 - 为什么 CTRL-SHIFT-F 在 Visual Studio 中重绘我桌面上的多个窗口?

我有一个 3 监视器设置,通常打开 Visual Studio 2008 并在另一个屏幕和其他一些窗口上显示帮助。当我按下 CTRL-SHIFT-F 打开查找和替换对话框时,我的桌面开始在我的桌面上重绘几个窗口。这极大地减慢了为我打开该对话框的速度。

顺便提一句。当我通过下拉菜单打开该对话框时也会发生这种情况。有趣的是,这不会发生在其他一些窗口中,例如 C++ 解决方案中的项目属性。其他窗口不会重绘。

我不确定 VS 或所有其他应用程序中是否出现问题,但例如 msdn 帮助浏览器也会重绘,而 vista 资源管理器没有 - 或者我看不到它。

有解决办法吗?根据打开的窗口数量,打开此对话框有时需要 15 秒。

最好的问候马克

0 投票
1 回答
988 浏览

android - Android:损坏的 PreferenceActivity 视图

我有基于 PreferenceActivity. (您可以在DroidIn应用程序中看到它)我遇到了一些问题,我认为这与更新后重绘屏幕有关。以下是症状:

  1. OnPreferenceChangeListener#onPreferenceChange如果我通过执行新值来更改偏好摘要,Preference#setSummary则将新值涂在旧值上,从而产生难看的效果
  2. 我的首选项屏幕足够大,用户必须滚动。滚动时,整个屏幕都搞砸了,看起来视图被重绘(滚动时)而不先擦除背景。

首选项在 XML 文件中定义 - 没有什么时髦的只是嵌套在其中的一些类别和首选项<PreferenceScreen/>

我需要显式重绘视图吗?这似乎太过分了——为什么默认情况下不会发生这种情况?由于这是一个现有的应用程序 - 它是使用 v. 1.5 构建和分发的

PS 我还想提一下,这种行为发生在 1.1 和 1.5 的模拟器和 G1 上。看来我需要将其记录为错误