2010-11-24 63 views
1

我在XP上有一個簡單的組合框渲染問題。XP上的WPF Combobox渲染

的代碼就是:

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

然而,在不同的操作系統,結果是不太我所預料:

Vista的:Combobox Vista
XP:Combobox XP

回答

3

無論當前的Windows版本(例如XP還是Vista),您都可以強制WPF應用程序應用某種Windows標準方案。

迫使你的應用程序使用的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" /> 
1

組合框 - 像大多數其他控件一樣 - 考慮到操作系統主題,以便您的用戶界面與OS表面的其餘部分保持一致。

如果你想創建一個「操作系統不可知」的外觀(即在不同的操作系統中保持相同的外觀),你必須重新對其進行模板化。

+0

我真的不希望(或需要)重新模板,我只是想它看起來不錯。你可以在截圖中清楚地看到XP上的標準結果是失真的。 – sagibb 2010-11-24 15:17:26

+0

它不失真。只是你必須設定它的高度。嘗試高度=「20」,它會神奇地看起來像你想要的。 – 2010-11-24 16:06:01