某些WPF功能在另一台计算机上无法工作

本文关键字:计算机 一台 工作 功能 WPF 某些 | 更新日期: 2023-09-27 18:18:59

我们使用。net fx3.5开发了一个桌面应用程序,其中包含一些winforms和两个WPF窗口。我已经在将近20台不同的电脑上安装了它(其中大多数有XP),除了三台电脑(也有XP和相对较新的硬件规格)之外,所有的都工作得很好。

情况如下:

  • WPFWindow1包含一些带有点击事件的按钮(这些按钮都可以正常工作),ProgressBar从列表中读取并为每个按钮生成一些ui元素(这些ui元素的创建使用绑定方法经典子添加方法)。

  • WPFWindow2包含一个带有点击事件的帮助按钮(工作正常)和ComboBox(只有正确填充其项目)。

问题:

  • 当我打开WPFWindow1时,ProgressBar没有启动,尽管它提供了适当的对象来读取。

  • WPFWindow2中,当我选择ComboBox的一个项目时,我希望它在组合框下方显示它的报告,但它没有显示任何内容。

我已经在所有目标计算机上安装了。net fx4。也许另一个程序集或更新丢失了?或者权限有问题(这是一个高安全性的站点,我们使用赛门铁克端点保护的一些严格策略)

任何帮助,建议,建议,见解或其他非常感谢。


加载WPFWindow2时,启动以下定时器:

void delayTimer_Elapsed(...)
{
    delayTimer.Stop();
    Dispatcher.Invoke(new System.Windows.Forms.MethodInvoker(
        delegate{
            foreach(var data in dataList)
            {
                MyWpfControlList.Add(new MyWpfControl(data));
                progressBar.Value++;
                Application.DoEvents();
            }
        }));
}

编辑:我不确定这个问题来自哪里。但是因为它几乎在任何地方都能工作,所以我不认为与代码有关。

可能是windows更新吗?

某些WPF功能在另一台计算机上无法工作

进度条显示后台任务是正确的吗?如果是,后台任务是在后台线程上执行还是在UI线程上执行?如果UI,那么你可能会发现一些计算机(即:那些有一个CPU或低功率的CPU)的消息泵是无法更新进度条,因为你的CPU被用于列表更新。如果是这种情况,您需要做的是在线程上执行后台任务,并使用Dispatcher定期更新进度条。调用将更新封送到UI线程。

请您张贴一个代码示例,以便我们可以仔细看看?否则它只是猜测!

致以最诚挚的问候

您是否检查了进度条上的最小值和最大值?是否最大值大于最小值