Положение BackgroundImage в форме Windows - PullRequest
7 голосов
/ 14 сентября 2010

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

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

Ответы [ 2 ]

9 голосов
/ 14 сентября 2010

Просто нарисуйте его самостоятельно в методе 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);
    }
2 голосов
/ 14 сентября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...