Position of BackgroundImage in Windows Form

前端 未结 2 1738
小蘑菇
小蘑菇 2020-12-17 01:16

I am setting the BackgroundImage of a Windows Form to a 200 x 200 image. The Form is 500 x 500. I want the image to be anchored in the bottom right corner of th

相关标签:
2条回答
  • 2020-12-17 01:54

    You cannot do that with the BackgroundImageLayout.
    However what you could do is add a PictureBox, anchor it to the bottom right and set it to the lowest z-value. This would result in pretty much the requested effect.

    0 讨论(0)
  • 2020-12-17 02:00

    Just draw it yourself in the OnPaintBackground() method. Add the image to the resources (I called it BkgImage) and make the form code look like this:

        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);
        }
    
    0 讨论(0)
提交回复
热议问题