2008-08-30 137 views
4

是否有一種簡單的方法來設置窗體在C#中的縮放級別?在VBA中有一個窗體的縮放屬性。在C中放大窗體窗體#

+0

你能指定什麼樣的表單嗎?我們在談論Web表單和文本編碼大小嗎? – 2008-08-30 01:17:48

回答

0

有沒有辦法(我知道)做你所要求的典型的WinForms。

如果您正在進行自定義繪畫/繪畫,您可以通過使用縮放轉換來縮放,但據我所知,在整個.NET和本機窗口中沒有「縮放」屬性/ C++ API相結合。

你可以自己鑽一些東西,這樣你就可以通過一個常數來調整控制。你也可以找到支持這個的第三方控件/表面。誰知道WPF有什麼可能。但在典型的WinForms世界中,沒有。

+0

以下是方法:http://msdn.microsoft.com/en-us/library/system.windows.forms.control.scale.aspx。當然,由於縮放控件的縮放值接近整數值(因此,連續縮放操作可能會導致原始尺寸不正確),因此您應該跟蹤原始控件大小。 – Luca 2010-09-12 09:24:44

8

我有同樣的問題,我用c#解決這個問題。代碼繼續形式加載

float scaleX = ((float)Screen.PrimaryScreen.WorkingArea.Width/1024); 
float scaleY = ((float)Screen.PrimaryScreen.WorkingArea.Height/768); 
SizeF aSf = new SizeF(scaleX, scaleY); 
this.Scale(aSf); 

這個「或多或少」的縮放形式和所有的孩子。在800×600永遠循環 你必須設置以下表單屬性(?):

AutoscaleMode = Font 
AutoSize = False 
2

您可以通過給表分配不同字體獲得某種變焦,所有控件會相應如果放大AutoScaleMode設置爲字體。同時設置AutoSize爲False將保持表格大小不變,控件將增加到表格的中心位置。您需要正確設置所有錨,並測試外觀,因爲它只是「一種縮放」。

所以基本上這裏是樣品的構造函數:形式已經顯示了分配新的字體會搞亂所有控件

public Form1() 
{ 
    InitializeComponent(); 

    AutoSize = false; 
    AutoScaleMode = AutoScaleMode.Font; 
    Font = new Font("Trebuchet MS", 
     10.0f, 
     FontStyle.Regular, 
     GraphicsUnit.Point, 
     ((byte)(204)) 
    ); 
} 

後,這招是行不通的。