Vanilla WPF应用程序挂起在一个客户上';s机器

Vanilla WPF应用程序挂起在一个客户上';s机器,wpf,freeze,Wpf,Freeze,在一位客户处,我们的一个WPF应用程序开始挂起。当我试图用一个最小的工作示例重现这个问题时,我发现即使是最基本的(非平凡的)WPF应用程序也会挂在这台机器上 示例A:在VisualStudio2008中创建一个新的C#WPF项目。不做任何更改,编译并在客户的机器上运行。它将运行 示例B:以示例A为例,将文本块添加到主窗体窗口1: <Window ...> <Grid> <TextBlock>Test</TextBlock>

在一位客户处,我们的一个WPF应用程序开始挂起。当我试图用一个最小的工作示例重现这个问题时,我发现即使是最基本的(非平凡的)WPF应用程序也会挂在这台机器上

示例A:在VisualStudio2008中创建一个新的C#WPF项目。不做任何更改,编译并在客户的机器上运行。它将运行

示例B:以示例A为例,将文本块添加到主窗体
窗口1

<Window ...>
    <Grid>
        <TextBlock>Test</TextBlock>
    </Grid>
</Window>

试验
编译应用程序并在客户的机器上运行。它将挂起:标题栏和窗口边框可见,内部透明,窗口不会对任何东西做出反应(无法移动或关闭)。必须使用任务管理器关闭应用程序

显然,该客户的WPF已损坏。这是一个已知的问题吗?例如,以前是否有人遇到过它,并且已经知道如何解决它(例如重新安装.net 3.5 SP1等)


开发机器是W7SP1,客户的机器是XP(可能是SP3,没有检查)。

请检查。它对我的几个用户都有效。

此外,我最近在一个更复杂的例子中有过这种体验

连枷:

我尝试了这个清理字体缓存的方法,但它对我挂起的应用程序没有任何作用,只对YMMV起了作用。然而,这似乎是无害的

还尝试了对所有框架进行加密,但这并没有解决问题

解决方案:

在我的MVVM应用程序中,我在标签页上的复杂控件上有一个ItemsControl(通用,而不是真正的ListBox)。ItemsControl显示了大约14个“数据行”,由绑定到一个小集合的自定义控件组成,该集合本身由一个ScrollViewer包围。在ScrollViewer的包围下,选定的计算机将无休止地颠簸并卡住。注释掉Xaml使应用程序的行为完全正常,这几乎排除了支持ViewModel的问题

移除周围的ScrollViewer消除了这个问题,而且实际上也没有必要这样做。我确实怀疑真正的问题潜伏在某个地方,但坦率地说,我没有时间或耐心进一步调查

碎片

<!--<ScrollViewer ScrollViewer.VerticalScrollBarVisibility="Auto"
                  ScrollViewer.CanContentScroll="True" Grid.Row="7" -->
    <ItemsControl   Grid.Row="7" 
            VerticalAlignment="Stretch"    
            HorizontalAlignment="Stretch"
            Name="FileSettingsList"  
            ItemsSource="{Binding MigratorFiles.FilesCollection}"   
            BorderThickness="2"                          
            HorizontalContentAlignment="Left"
            Template="{StaticResource   FileNameSettingsItemsControlTemplate}"                          
            ItemsPanel="{StaticResource FileNameSettingsItemsPanelTemplate}" 
            ItemTemplate="{StaticResource FileNameSettingsItemDataTemplate}"  >
    </ItemsControl>
    <!-- /ScrollViewer -->


Fine print:我知道从技术上讲,这不是一个编程问题。但是,它既不适用于Serveradmin,也不适用于超级用户,这是开发人员最可能遇到的问题。因此,我把它贴在这里。可能是视频驱动程序的问题吗?你有没有尝试过其他不是你开发的WPF应用程序,即以可执行形式从web下载的应用程序?@Daniel:谢谢你的提示,我会在有机会的时候尝试。我以前遇到过字体缓存挂起的问题-我不知道为什么或者如何解决它,但是看看任务管理器,看看它是否在旋转。可能是个线索。很高兴知道!!把这家伙的分数提高几分。我肯定我得再找一次。