2017-08-17 6 views
1

イムでのズームと私はズームインしてマップをズームアウトしたいです。だから私の考えは、ボタンであるパネルのすべてのコンテンツのサイズを変更することです。 私のコードはここにある:墓地のための小さなマップを作成するパネルのC#

foreach (Control btn in this.panel3.Controls) 
     { 
      if ((btn) is Button) 
      { 
       btn.Width += 10; 
       btn.Height += 10; 
      } 
     } 

はそれを行うための他の方法はありますか?私はそれがズームインのように見えないので、満足していないか、ズームインした方がいいかもしれません。事前に感謝します。

+1

「ScaleTransform」を使用してください。 –

+0

WinFormsを使用する必要がありますか?フォームのスケーリング/回転は、WPFの方がはるかに優れています。 – NineBerry

+0

@NineBerry私はリサイズを使用する必要があります。また、これは、フォントサイズを大きくしない –

答えて

1

あなたのコードを別々ボタンで唯一ズーム。何が必要かもしれすることストレッチ全域ボタンのにあります。

foreach (Button btn in panel3.Controls.Where(c => c is Button).Cast<Button>()) 
{ 
    const double zoom = 1.1; 

    //increase position 
    btn.Left = Convert.ToInt32(btn.Left * zoom); 
    btn.Top = Convert.ToInt32(btn.Top * zoom); 

    //increase size 
    btn.Width = Convert.ToInt32(btn.Width * zoom); 
    btn.Height = Convert.ToInt32(btn.Height * zoom); 
} 
+1

、手動でそれを行う必要があります。 – florien

0

あなたはパネルの内容にズームイン、ズームアウトするPanelScale方法を使用することができます。この(私がテストしていない)のようなもの。

private void buttonZoomIn_Click(object sender, EventArgs e) 
{ 
    cemetaryPanel.Scale(new SizeF(1.1f, 1.1f)); 
} 

private void buttonZoomOut_Click(object sender, EventArgs e) 
{ 
    cemetaryPanel.Scale(new SizeF(0.9f, 0.9f)); 
} 
関連する問題