none
C# Control 保持原狀,不隨著使用者調整dpi更動。 RRS feed

  • 問題

  • 不好意思,感謝各位。

    我有一個問題,就是當使用者調整Windows的解析度調的比較時。

    我原先的c# UI就會跟著改變,因為我是Usercontrol,調整後會變的很奇怪。(Chart圖)

    我希望UI畫面能保持原狀,不隨著調整變化,嘗試過AutoScaleMode,可是還是沒有用
    http://msdn.microsoft.com/zh-tw/library/ms229605(v=vs.110).aspx

    想請問各位先進,有什麼推薦的方向,或是方法呢,謝謝您的回答。


    2014年2月12日 上午 10:21

所有回覆

  • 您好,
    小弟之前有針對這個研究一下,您可參考看看「.NET 1.1 Window Form AutoScale=false 120dpi的解決方式」。
    不過,您不調整的話,您的UI不就會變小 ??

    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    2014年2月12日 上午 11:10
  • 您可以參考這篇文件設計您的UserControl:Creating a DPI-Aware Application
    • 已編輯 tihsMVP 2014年2月12日 下午 12:53
    2014年2月12日 下午 12:49
  • 感謝您珍貴的回答!

    不過我在測試的時候不管在usercontorl的properties中
    autocalemode 改成 none.
    autosize 改成 false

    只要我重登入(更換大小dpi)整個視窗還是照樣放大 ... 
    字型自動縮小是很好的主意,很感謝您的見解。

    不過我還是困在contorl大小會自動放大 ..

    其實我不想讓它放大的原因是因為
    我的control是chart圖 (而且採用的是預設,他會隨著dpi自動調整chart control裡面的字型跟label大小等等)
    造成他會超過原本usercontrol的大小,而變得亂七八糟。
    而外面的dialog(mfc)為了對齊他,是寫死的(by pixel)。(不會隨著dpi改變)

    我很需要讓chart圖 完全不動 .. 所以才在想有沒有什麼設定,可以直接讓dpi完全不處理 .. 避免這個狀況

    2014年2月18日 上午 09:02
  • 感謝您的意見,我看一下,謝謝!!
    2014年2月18日 上午 09:10