2011-01-19 15 views
1

私は現在、サードパーティのアプリケーションのプラグインDLLに取り組んでいます。私のDLLの一部には、System.Windows.Forms.MonthCalendarというポップアップウィンドウが含まれています。今私はそれをVisual Studioで作業し、テストアプリケーションを使ってポップアップを開くと、私はそれを書いていますが、サードパーティ製のアプリケーションを開いてみると違って見えます。異なって見える上に、彼らはまた、異なる行動を持っています。なぜ誰にも分かりませんか?私が問題と思っていることの1つは、私のdllが.Net 3.5で構築され、サードパーティのアプリが.Net 2.0(私は思う)であるということです。しかし、私がテストアプリケーションを.Net 2.0としてビルドしたときも、それは同じように機能しました。サードパーティのアプリでMonthCalendarの外観が異なるのはなぜですか?

は、ここで私が期待してんだよ:

alt text

答えて

4

をサードパーティ製のアプリケーションは、視覚的なスタイルを可能にしているされていません。

alt text

そして、ここでは、私が得てんですよしたがって、従来のWindows UIテーマに戻っています。ボタンとコンボボックスも同じように見えないことに注意してください。サードパーティアプリケーションでビジュアルスタイルを有効にして、現在のWindowsテーマを適用する必要があります。

(練習として、古典的なテーマを使用して、作業のテストアプリケーションを見て、Windowsの設定を切り替えてみてください - 。それは、サードパーティものと同じになります)

+0

がそうする方法がありますサードパーティのアプリケーションから呼び出されたときにポップアップにクラシックWindows UIテーマを使用させますか? – juharr

+0

おそらく、私はこれを強制しません。コントロールは、特定のUIテーマを指定して適切に動作するように設計する必要があります。 Vista/7のテーマでしかうまく動作しないように設計されているようです。 X、Yレイアウトの代わりに自動サイジング・テーブル・レイアウトを使用することを検討してください。 – cdhowie

+0

私のテストアプリケーションから 'Application.EnableVisualStyles()'を削除すると、サードパーティーのアプリケーションと同じ結果が得られます。今私はサードパーティーのアプリのためにそれをオンにすることができます参照してください。 – juharr

関連する問題