1. 程式人生 > >C#/winform設定窗體自動縮放適應不同尺寸的電腦螢幕大小

C#/winform設定窗體自動縮放適應不同尺寸的電腦螢幕大小

由於要用winform開發一個桌面安裝版考試軟體,使用者量也比較多, 所以很多使用者反映軟體的介面經常超出螢幕,部分功能或內容無法顯示完整。 軟體介面有幾個設定大小固定為寬1066, 高718。 我本機的開發電腦是寬屏的,所以顯示效果還是不錯,但是使用者的電腦配置千奇百怪, 各種尺寸都有,居然還有用幾年前的上網本來使用的,導致介面超出了,無語啊。 之前我想了一種方式就是,主介面自動最大化(自動獲取螢幕大小設定為介面自身大小), 然後就是把主窗體設定為容器模式,把所有的窗體都在主窗體內顯示,如果子窗體比父窗體大, 父窗體則會自動出現滾動條,不會出現子窗體內容不能顯示完整的情況。 如圖示例: Cwinform設定窗體自動縮放適應不同尺寸的電腦螢幕大小 - yefenme - yefenme 的部落格   這種模式雖然可以,但是好好的程式再去改成這樣,就懶得弄了, 今天看窗體屬性,突然發現一個AutoScaleMode屬性, 百度了一下,居然可以設定窗體隨著解析度改變來適應電腦螢幕。 系統預設是:Inherit 。

① None : 禁用自動縮放。(預設時)

② Font :根據類使用的字型(通常為系統字型)的維度控制縮放。

       如果希望控制元件或窗體根據作業系統中字型的大小進行拉伸或縮小,則按 Font 縮放十分有用,如果控制元件或窗體的絕對大小無關緊要,則應使用這種方式進行縮放。比如:一個按鈕的文字,改變了系統的字型大小,按鈕也隨著變大到能完整顯示文字。

 ③ Dpi : 根據顯示解析度控制縮放。常用解析度為 96 和 120 DPI。

       如果要相對於螢幕確定控制元件或窗體的大小,則按 Dpi 縮放十分有用。例如,對於顯示圖表或其他圖形的控制元件,可能希望使用每英寸點數 (DPI) 縮放,以便該控制元件始終佔據一定百分比的螢幕

④ Inherit   : 根據類的父類的縮放模式控制縮放。如果不存在父類,則禁用自動縮放。


AutoScaleMode屬性設定好之後,最好還要搭配另外三個屬性來控制窗體的大小。如下: Autosize=false,設定窗體不根據內容超出而調整窗體自身大小,以免窗體超出螢幕。 AutoScroll=true,設定窗體當內容超出窗體時,自動產生滾動條。這樣使用者依靠滾動條既可以完全看到超出窗體的內容了。

MaximizeBox=true,可設定窗體最大化,當窗體超出螢幕時,使用者可設定窗體最大化來讓窗體尺寸貼合用戶螢幕。

來源:http://yefenme.blog.163.com/blog/static/13069770420132283644288/

相關推薦

C#/winform設定窗體自動適應不同尺寸電腦螢幕大小

由於要用winform開發一個桌面安裝版考試軟體,使用者量也比較多, 所以很多使用者反映軟體的介面經常超出螢幕,部分功能或內容無法顯示完整。 軟體介面有幾個設定大小固定為寬1066, 高718。 我本機的開發電腦是寬屏的,所以顯示效果還是不錯,但是使用者的電腦配置千

C#winform 設定開啟資料夾選擇對話方塊folderBrowserDialog自動定位至上一次的選擇路徑(新手記錄)

個人總結,實現開啟資料夾選擇對話方塊後可以定位到上一次的路徑 第一步:佈局 第二步:建立一個公共類 第三步:程式碼 第四步:寫入配置檔案App.config或者txt檔案 第五步:讀取配置檔案App.config 或者txt檔案

Android 設定ImageView寬度固定,其高度按比例適應

今天和專案經理對噴了一下,他說在應用的列表資料中的圖片應該寬度固定,高度按比例縮放自適應,我說,那豈不是很醜!直接讓運營那邊把圖片處理成固定寬高比不就好了,省的我客戶端麻煩了。 這傢伙不同意,為毛呢,因為我們公司的圖片尼瑪全部是從別的網站上蕩過來的,幾萬張圖片,本身不知道

Android程式碼中動態設定圖片的大小自動),位置

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" andr

C# API 獲取系統DPI倍數跟分辨率大小

primary styles ice https orz IE blog ace user 原文:C# API 獲取系統DPI縮放倍數跟分辨率大小 using Syst

html 網頁背景圖片根據屏幕大小CSS自動

val apple back clas 交互 dde fun 效果 而且 https://blog.csdn.net/coslay/article/details/47109281 騰訊微博和QQ空間的登錄背景圖片是根據訪客的屏幕大小自動縮放的,但是好像是用JQuery代碼

c# Winform登陸介面設計,登陸使用者不同許可權設定

要求:登陸介面,使用者只有管理員和普通使用者           管理員可以進行資料庫的增、刪、改、查;         

C語言實現BMP影象

對BMP影象用C語言實現影象的縮放。縮放的倍數通過輸入設定 #include <Windows.h> #include <stdlib.h> #include <stdio.h> #include <math.h> int main(int

css3動畫 文字自動 圖片自動移動效果的製作

佈局就不寫了 直接上樣式 .p_tx a{animation: rotate 0.3s ease-in-out alternate infinite;margin-left:20px;} .p_tx1 img{animation: skew 1.5s ease-in-

C#數字影象處理------影象

影象幾何變換(縮放、旋轉)中的常用的插值演算法 在影象幾何變換的過程中,常用的插值方法有最鄰近插值(近鄰取樣法)、雙線性內插值和三次卷積法。 最鄰近插值: 這是一種最為簡單的插值方法,在影象中最小的單位就是單個畫素,但是在旋轉個縮放的過程中如果出現了小數,那麼就對這個浮點座標進行簡單的取

C# Winform窗體的美化—— 用IrisSkin輕鬆實現換膚功能

今天經前輩提醒才知道winform窗體還有美化工具,呵呵,不得不說,孤陋寡聞了。下面總結一下irisskin2的使用步驟和遇到的問題及解決辦法。 1、網址:http://www.pc6.com/softview/SoftView_70918.html#down

C# winform一個窗體獲得另一個窗體的值

//一個窗體獲得另一個窗體不要new 一個新的例項。 //程式碼 rukuguanli.ruku f = (rukuguanli.ruku)this.Owner; //這樣就可以獲得f 窗體textBox1的值 string path = f.

C# Winform 載入窗體/物件時的等待頁面設計

在設計應用程式過程中,有時候載入物件需時較長,我們可以顯示一個Loading等待頁面,對使用者來說就比較友好了。  這個還是涉及到多執行緒,下面是步驟。 一、建立好Loading窗體: 一個Panel用於顯示轉圈動畫(仿Win10的Loading),一個Loading文字標籤。動畫的程式碼來自網路。

VM VirtualBox 全屏模式 && 自動模式 相互切換

-s 快捷 box 主菜單 縮放 分享 inf 總結 宋體 【1】自動縮放模式 熱鍵Host + C 偶然一次機會,把虛擬機切換為了自動縮放模式,如下圖: 想要再切換為全屏模式,發現不知如何操作,後來折騰了一會兒,切換成功。以此備錄一下。 【2】切換為全屏模式 熱

js 最完美解決 圖片在圖片框內按寬高比例自動

<script type="text/javascript"> /******最完美解決 圖片在圖片框內按寬高比例自動縮放!!!***/ //Img:要放圖片的img元素,onload時傳參可用this //ma

圖片(img)的等比例自動

img{ width: auto; height: auto; max-width: 100%; max-height: 100%; } 最近

C# WinForm設定透明

3、有些情況下滿足不了需要,這裡再提供2種方法供參考: UpdateLayeredWindow()和GraphicsPath。具體檢視:http://www.cnblogs.com/jxsoft/archive/2011/03/09/1978156.html

iOS瀑布流圖片自動圖片比例

在類的.h中定義UIImageView屬性 @property(nonatomic,retain)UIImageView * showImageView; 重寫系統方法: -(void)layoutSubviews{ [super layoutSubviews];//要繼

C#-WinForm設定托盤程式

背景 現在很多程式都有這樣的托盤程式 窗體關閉時,並不真正關閉程式,只是工作列不顯示該應用程式,在右下側托盤裡顯示; 雙擊托盤,窗體還原; 右擊窗體,出現托盤選單,實現最小化,最大戶,還原,退出等。 這樣的功能C#winform怎樣實現呢 ?

C#圖片處理示例(裁剪,,清晰度,水印)

using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Drawing; using System.Drawing.Drawing2D; using System.Dr