4

グーグルで検索する方法がわからないので、ここで質問しています。これを呼び出す方法がわかりません。

私が言いたいのは、基本的に要素の左上隅にある「ゼロ点」です。たとえば、pictureBoxです。したがって、pictureBoxに新しい幅と高さのプロパティを設定すると、正常に機能しますが、左上隅を基準にしています。

つまり、pictureBoxがあり、たとえば100 x 100で、50 x 100に減らしたい場合は、画像ボックスの上部ではなく、下に「空のスペース」が表示されます。PictureBoxは、この左上隅のゼロ点からプロパティをカウントします。

そして、私が必要としているのは、このポイントを別のコーナーに変更することです。
ですから、身長を変えると、カウントダウンではなくカウントアップします。お願い助けて。

あなたが私を理解してくれることを本当に願っています。

わあ、アドバイスありがとうございます!アンカープロパティとトップ+=50をテストしました。今、私の問題は解決しません。別の言い方をしてみましょう。下に草50px、上に空50pxの画像(100px)があります。つまり、高さが100のpictureboxがあります。pictureBox.height=50を設定した場合。空しか見えません。しかし、私は草だけを残す必要があります。ここで私が目にする主な問題は、左上隅にあるこのゼロ点のためです。

次に例を示します。

地球と空の2つの側面に分割されたシンプルな画像

Button1クリックイベント:

private void button1_Click(object sender, EventArgs e)
    {
        pictureBox1.Height = 150;
    }

ボタンを押した後に得られる結果:

ボタンを押した結果

しかし、私は別の結果が必要です:

ここに画像の説明を入力してください

私が理解しているように、高さプロパティは左上隅からカウントされるために発生します。したがって、左下または右下に変更すると、必要な方法で機能します。この点を変えてください...

MSDNリファレンス: http: //msdn.microsoft.com/en-us/library/system.windows.forms.picturebox.sizemode (v = vs.71).aspx

このプロパティの有効な値は、PictureBoxSizeMode列挙から取得されます。デフォルトでは、PictureBoxSizeMode.Normalモードでは、画像はPictureBoxの左上隅に配置され、PictureBoxに対して大きすぎる画像の部分はクリップされます。PictureBoxSizeMode.StretchImage値を使用すると、画像がPictureBoxに合うように引き伸ばされます。

4

1 に答える 1

0

コントロール レイアウトを自動的に処理するコンテナーを使用していない限り、自分で移動する必要があります。次のような行を使用して、コードでコントロールのサイズを変更していると思います。

myPictureBox.Height = 50;

コントロールの位置も同じ量だけ下に移動する必要があります。

myPictureBox.Top += 50;

一般化すると、このようなものが高さのサイズを変更するためのトリックを行うはずです:

void ResizeHeightFromBottom(this Control c, int newHeight)
{
    var oldBottom = c.Bottom;
    c.Height = newHeight;
    c.Top = oldBottom - newHeight;
}

任意の基準点を指定するだけでなく、幅のサイズ変更と両方を同時に読者の演習として残します。

于 2012-11-05T13:43:48.987 に答える