XP上的WPF组合框呈现

XP上的WPF组合框呈现,wpf,combobox,windows-xp,rendering,Wpf,Combobox,Windows Xp,Rendering,我对XP上的简单组合框呈现有问题 代码只是: <ComboBox Cursor="Hand" customCommands:ComboBoxSelectionChange.Command="{Binding StatusChange}" ItemsSource="{Binding AvailabilityStatusList}"/> 然而,在不同的操作系统上的结果并不是我所期望的: Vista: XP:与大多数其他控件一样,组合框考虑了操作系统主题,因此您的用户界面将与操作系统

我对XP上的简单组合框呈现有问题

代码只是:

<ComboBox Cursor="Hand" customCommands:ComboBoxSelectionChange.Command="{Binding StatusChange}" ItemsSource="{Binding AvailabilityStatusList}"/>

然而,在不同的操作系统上的结果并不是我所期望的:

Vista:

XP:

与大多数其他控件一样,组合框考虑了操作系统主题,因此您的用户界面将与操作系统表面的其余部分保持一致


如果你想创建一个“操作系统不可知”的外观(即在不同的操作系统中保持相同的外观),你必须重新设置模板。

组合框与大多数其他控件一样,考虑到操作系统主题,因此你的用户界面将与操作系统表面的其余部分保持一致


如果你想创建一个“操作系统不可知”的外观(即在不同的操作系统中保持相同的外观),你必须重新设置模板。

你可以强制WPF应用程序应用特定的Windows标准方案,而不管当前的Windows版本是什么(例如XP还是Vista)

要强制应用程序使用Aero主题(Vista),请将其放入App.xaml:

  <!-- Use the Aero scheme for your application, regardless the currently applied Windows Theme or OS Version. -->
    <ResourceDictionary
        Source="/PresentationFramework.Aero, Version=3.0.0.0, Culture=neutral, 
        PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml" />

您可以强制WPF应用程序应用特定的Windows标准方案,而不考虑当前的Windows版本(例如XP与Vista)

要强制应用程序使用Aero主题(Vista),请将其放入App.xaml:

  <!-- Use the Aero scheme for your application, regardless the currently applied Windows Theme or OS Version. -->
    <ResourceDictionary
        Source="/PresentationFramework.Aero, Version=3.0.0.0, Culture=neutral, 
        PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml" />


我真的不想(或需要)重新设置模板,我只想让它看起来像样。你可以在截图中清楚地看到XP上的标准结果是扭曲的,而不是扭曲的。只是你必须设定它的高度。试试Height=“20”,它会神奇地看起来像你想要的。我真的不想(或需要)重新设置它的模板,我只希望它看起来像样。你可以在截图中清楚地看到XP上的标准结果是扭曲的,而不是扭曲的。只是你必须设定它的高度。试试Height=“20”,它会神奇地像你想要的一样。谢谢,这正是我想要的!由于我们的应用程序不使用OS配色方案(它使用定制的透明窗口),因此即使在定制主题上,它也不会显得那么怪异。唯一仍然存在的问题是XP和Vista/7上的字体大小不同。哇!!我不知道你能做到这一点。印象深刻。谢谢,这正是我要找的!由于我们的应用程序不使用OS配色方案(它使用定制的透明窗口),因此即使在定制主题上,它也不会显得那么怪异。唯一仍然存在的问题是XP和Vista/7上的字体大小不同。哇!!我不知道你能做到这一点。印象深刻。