Положение BackgroundImage в форме Windows

Я устанавливаю BackgroundImage формы Windows для изображения 200 x 200 Форма 500 х 500. Я хочу, чтобы изображение было закреплено в правом нижнем углу формы. Однако единственный доступный мне вариант BackgroundImageLayout свойство - установка этого значения в "Нет" приводит к тому, что изображение привязывается к левому верхнему углу. Как я могу это изменить?

Примечание: я использую.NET 2.0

2 ответа

Решение

Просто нарисуйте его самостоятельно в методе OnPaintBackground(). Добавьте изображение к ресурсам (я назвал его BkgImage) и сделайте код формы похожим на это:

    public Form1() {
        InitializeComponent();
        backgroundImage = Properties.Resources.BkgImage;
        this.DoubleBuffered = true;
        this.SetStyle(ControlStyles.ResizeRedraw, true);
    }
    private Image backgroundImage;

    protected override void OnPaintBackground(PaintEventArgs e) {
        base.OnPaintBackground(e);
        var rc = new Rectangle(this.ClientSize.Width - backgroundImage.Width,
            this.ClientSize.Height - backgroundImage.Height, 
            backgroundImage.Width, backgroundImage.Height);
        e.Graphics.DrawImage(backgroundImage, rc);
    }

Вы не можете сделать это с BackgroundImageLayout.
Однако то, что вы можете сделать, это добавить PictureBox, закрепить его справа внизу и установить для него самое низкое значение z. Это привело бы в значительной степени к запрошенному эффекту.

Другие вопросы по тегам