2010-11-24 6 views
1

XPでの単純なコンボボックスレンダリングに問題があります。XPでのWPFコンボボックスレンダリング

コードがちょうどされています。しかし、異なるOS上の結果は、非常に私は期待しましたされていない

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

ビスタ:Combobox Vista
XP:Combobox XP

答えて

3

現在のWindowsのバージョン(XPとVistaなど)に関係なく、WPFアプリケーションに強制的に特定のWindows標準スキームを適用できます。再テンプレートに

<!-- 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" /> 
+0

ありがとう、これは私が探していたものです!私たちのアプリケーションはOSカラースキーム(カスタマイズされた透明なウィンドウを使用しています)を使用しないので、カスタマイズされたテーマでさえ奇妙に見えません。まだ唯一の問題は、XPとVista/7のフォントサイズに違いがあります。 – sagibb

+0

うわー!!あなたがこれを行うことができるか分からなかった。非常に感動。 – Eddie

1

コンボボックス - 他のほとんどのコントロールと同様に、OSのテーマを考慮して、ユーザーインターフェイスがOSの他の部分と一貫しているようにします。

「OSに依存しない」外観(異なるオペレーティングシステム間で同じ外観を維持する)を作成するには、それを再テンプレートする必要があります。

+0

私が本当にしたい(または必要)していないことは、私はちょうどたい:あなたのApp.xamlでこれを入れて、Aeroテーマ(Vistaを)使用するために、あなたのアプリケーションを強制的に

それはまともに見える。スクリーンショットでは、XPの標準的な結果が歪んでいることがはっきりと分かります。 – sagibb

+0

歪んでいません。それはちょうどあなたがその高さを設定する必要があります。 Height = "20"を試してみると、魔法のように見えます。 –

関連する問題