C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 126 を表示中)
■74930 / )  Re[1]: WPF上でのWindowsFormsユーザーコントロール
□投稿者/ Hongliang (276回)-(2015/02/10(Tue) 12:20:12)
WinFormのコンテナ系コントロールには、AutoScaleModeというプロパティがあります。
https://msdn.microsoft.com/ja-jp/library/ms229605.aspx
デザイナの初期値ではAutoScaleMode.Fontなので、フォントに依存して座標類が変換されます。
UserControlのフォントが未設定の場合、デザイン時はWinFormの標準であるMS UI Gothicを、実行時は親要素から引き継いだメイリオを使うため、座標変換が発生してそのような状況になっているのでしょう。
・UserControlのFontを明示的に設定する
・UserControlのAutoScaleModeをDpiに設定する
・WindowsFormsHost(やその先祖)のFontFamilyやFontSizeをWinForm標準のと同じにする
 (フォントサイズの単位がWinFormとWPFで違いますが)
のいずれかを行えば、とりあえずサイズが変に拡大されると言うことは無くなるでしょう。

// もう一つ、WindowsのDPI設定による影響ってのもあるんですが……。
返信 編集キー/


管理者用

- Child Tree -