2011-07-11 69 views
2

我有一個應用程序可以在兩個不同的設備上運行 - 一個屏幕尺寸爲240x320,另一個爲480x640。Windows移動自動調整面板

對於所有形式的條之一VS生成的代碼是細:

this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); 
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; 
this.AutoScroll = true; 

對於一種形式即時捕獲簽名。我正在通過一個帶有圖形處理程序的面板來做這件事。捕捉鼠標並移動事件;這會生成一個可以繪製線條的矢量點列表。

在較小的res屏幕上,這很好。在更高的水庫,我不能顯示我的線..我認爲這是因爲面板超出了窗體的大小。

表單創建時的大小爲240 x 268;我認爲標準尺寸 - 我沒有手動設置它,VS爲我做這個。

爲了使面板在高分辨率設備上的正確位置,座標爲3,290;即290是過去的268.此外面板的寬度是448,它比240略大。

我使用.net 2.0(以後無法使用)。我認爲我需要調整表單的大小以使其更大,但我確實希望保留表單上其他控件的現有大小。

我不知道如何做到這一點。

回答

0

我在寫這個答案對於那些誰可能在將來有類似的問題的好處。 PaulG指出我正確的方向,但我發現根本原因是別的。

的PDA項目中,我已經得到了使用「FormFactor公司的WindowsMo​​bile 6經典」,它具有240×268

默認大小更改此爲「Windows Mobile 6專業VGA」創造了一個更大的窗體大小。

這讓我能夠正確定位東西,以適應更大的尺寸。然後AutoScaleMode爲DPI;並手動調整面板的大小使其全部工作。

IE,從大到小很容易;我沒有變得更小更大的工作。

1

使窗體停靠欄填充,然後使用Anchor屬性來確保窗體內的控件按預期調整大小。

如果您想要自定義單個控件如何調整大小的選項,請不要在其上設置定位屬性,而是處理Resize事件並在其中的代碼中執行自定義大小調整/重新定位。

private void form_Resize(object sender, EventArgs e) 
{ 
    // Center the control without changing width. Other controls are anchored. 
    this.control.Left = (this.Width - this.control.Width)/2; 
} 
+0

好吧..所以說我的面板是200 x 100爲小型和448 x 200爲較大。所以我可以使用resize事件來指定我需要的大小。也許我試着將它對接到底部?該面板是目前不調整大小的唯一項目。奇怪的是,鼠標下降事件仍然被觸發,我的矢量點正在填充..只是線條畫不工作。將嘗試調整大小,看看如何 - 謝謝。 – andrew