2010-02-25 97 views
0

我正在構建一個WPF應用程序,並且此WPF應用程序具有一個類似於工具欄的面板,我使用它來基於上下文添加按鈕。WPF效果和視頻卡問題

工具欄的代碼是:

<Grid x:Name="ToolBarGrid" VerticalAlignment="Top" Height="46"> 
      <Grid.Background> 
      <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
       <GradientStop Color="#FFDEDEDE" Offset="1"/> 
       <GradientStop Color="White"/> 
      </LinearGradientBrush> 
     </Grid.Background> 
     <Grid.Effect> 
      <DropShadowEffect Direction="270" BlurRadius="26" Opacity="0.215" Color="#FF647A9B"/> 
     </Grid.Effect> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="Auto" /> 
     </Grid.RowDefinitions> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="*" /> 
     </Grid.ColumnDefinitions> 

     <ItemsControl Grid.Row="0" Grid.Column="0" Name="Toolbar" Margin="0" Padding="0" VerticalAlignment="Top" Height="46" ItemsSource="{Binding View.ToolbarElements}"> 
      <ItemsControl.ItemsPanel> 
       <ItemsPanelTemplate> 
        <WrapPanel /> 
       </ItemsPanelTemplate> 
      </ItemsControl.ItemsPanel> 
     </ItemsControl> 

     <Border VerticalAlignment="Bottom" Height="0.5" BorderThickness="0.5" BorderBrush="Black"/> 
    </Grid> 

當我運行在Windows 7這個應用程序(64位,.NET 3.5 SP1,C2Q,的GeForce GTX 280)的應用程序是這樣的:

alt text http://i48.tinypic.com/t5t7rl.png

然後,我想在Windows XP,Vista和7下測試32位和64位版本的軟件,因爲它使用硬件,我想確保我的設備驅動程序在其他系統上也能正常工作。他們是這樣。 但問題是,當我在VMware的(6.5),創建一個新的虛擬機,並共進午餐的應用,工具欄看起來是這樣的:

的Windows 7(86):

alt text http://i47.tinypic.com/w160jo.png

Windows XP中(86):

alt text http://i50.tinypic.com/28aomma.png

嗯,我明白了WPF利用了硬件加速的WPF效果的性能比較的原因,我的VMware不有一個可能支持像素着色器的硬件,所以我的客戶可能有一臺沒有支持視頻卡的像素着色器的機器。我無法爲我的軟件添加這樣的硬件要求。

但不是WPF應該檢查來賓操作系統是否支持這種效果並使用替代的基於軟件的渲染效果?

有沒有解決方案,使它看起來在所有平臺上都一樣? (至少是某種類型的,即使質量較低,基於軟件的仿真),或者在保持漸變的同時完全禁用效果的方法?

工具欄在每個操作系統(甚至是虛擬機)上都是可點擊的,當我點擊一個按鈕所在位置的白色區域時,它會正確反應(按鈕被點擊)。

感謝您的幫助。

+0

我沒有選中VMware中的「加速3D圖形(DirectX 9.0c)」,所有內容都完美呈現。但仍然有任何想法爲什麼會發生? – 2010-02-26 00:01:36

回答