我在XP上有一個簡單的組合框渲染問題。XP上的WPF Combobox渲染
的代碼就是:
<ComboBox Cursor="Hand" customCommands:ComboBoxSelectionChange.Command="{Binding StatusChange}" ItemsSource="{Binding AvailabilityStatusList}"/>
然而,在不同的操作系統,結果是不太我所預料:
Vista的:
XP:
我在XP上有一個簡單的組合框渲染問題。XP上的WPF Combobox渲染
的代碼就是:
<ComboBox Cursor="Hand" customCommands:ComboBoxSelectionChange.Command="{Binding StatusChange}" ItemsSource="{Binding AvailabilityStatusList}"/>
然而,在不同的操作系統,結果是不太我所預料:
Vista的:
XP:
無論當前的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" />
組合框 - 像大多數其他控件一樣 - 考慮到操作系統主題,以便您的用戶界面與OS表面的其餘部分保持一致。
如果你想創建一個「操作系統不可知」的外觀(即在不同的操作系統中保持相同的外觀),你必須重新對其進行模板化。
我真的不希望(或需要)重新模板,我只是想它看起來不錯。你可以在截圖中清楚地看到XP上的標準結果是失真的。 – sagibb 2010-11-24 15:17:26
它不失真。只是你必須設定它的高度。嘗試高度=「20」,它會神奇地看起來像你想要的。 – 2010-11-24 16:06:01