2012-05-14 47 views
1

所以我設計的應用程序使用了一個非常簡單的列表視圖,其中包含複選框來檢查列表中的某些項目。它在我的機器上運行Windows 7時運行得非常好,但是當它運行在不同的Windows XP系統上時,鼠標在複選框周圍懸停時會變得非常緩慢且波濤洶涌。我寫了一個應用程序,它純粹是一個帶有複選框的列表視圖,在項目中絕對沒有其他任何東西,它仍然執行相同的操作。這有什麼不對嗎?在Windows XP中使用ListView的性能下降

<ListView Name="lstView" ItemsSource="{Binding List}" HorizontalContentAlignment="Stretch" SelectionMode="Extended"> 
    <ListView.View> 
     <GridView > 
      <GridView.Columns> 
       <GridViewColumn> 
        <GridViewColumnHeader Content="Dummy Column"/> 
       </GridViewColumn> 
       <GridViewColumn> 
        <GridViewColumnHeader Content="Dummy Column2"/> 
        <GridViewColumn.CellTemplate> 
         <DataTemplate> 
          <CheckBox IsChecked="{Binding Bool}" /> 
         </DataTemplate> 
        </GridViewColumn.CellTemplate> 
       </GridViewColumn> 
      </GridView.Columns> 
     </GridView> 
    </ListView.View> 
</ListView> 

該應用程序運行正常,否則XP的計算機上,將鼠標懸停在複選框的時候,我真的不知道爲什麼只是變得緩慢。任何人都曾經歷過這個或知道是什麼導致它/簡單的解決方案?

+0

如果您在XP 4.0的.NET 4.0/3.5中重建應用程序,然後在那裏運行,會發生什麼情況? –

+0

我可以嘗試從XP構建它,我想,要等到明天了,我會讓你知道的。 –

回答

1

在複選框的樣式/模板中,您是使用故事板還是VSM爲懸停效果設置動畫效果,還是用觸發器替換畫筆?如果您正在爲它們設置動畫,請嘗試交換畫筆。出於某種原因,XP並不總是很好地處理WPF動畫。

+0

我沒有做任何特別的事情,從字面上你可以把這個xaml代碼放在項目中沒有其他任何東西,它運行緩慢,否則合理體面的XP機器。 –

+0

通過在mouseover上動畫顯示邊框或網格的背景來測試它,看看是否會出現類似的問題。對於我的最後一個項目,我們部署了一個單獨的XP皮膚,因爲性能問題而刪除了每個內置動畫。 – VLTII

+1

什麼是刪除控件的內置動畫的簡單方法? –