我正在尝试创建一个自定义错误对话框,左侧有一个红色的x。以下是我的代码;
using JohnsonControls.FieldBusFDD.Properties;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace JohnsonControls.FieldBusFDD
{
public class ErrorDialog : Dialog
{
public static bool ShowDialog(string text, string title)
{
Form prompt = new Form();
prompt.Width = 435;
prompt.Height = 122;
prompt.FormBorderStyle = FormBorderStyle.FixedDialog;
prompt.Text = title;
prompt.StartPosition = FormStartPosition.CenterScreen;
PictureBox image = new PictureBox();
image.Image = Resources.red_x;
image.Location = new Point(10, 10);
image.Size = new Size(50, 50);
Label textLabel = new Label() { Left = 60, Top = 10, Width = 350, Text = text };
Button confirmation = new Button() { Text = "Ok", Left = 300, Width = 100, Top = 52 };
confirmation.Click += (sender, e) => { prompt.Close(); };
confirmation.DialogResult = DialogResult.OK;
prompt.Controls.Add(image);
prompt.Controls.Add(confirmation);
prompt.Controls.Add(textLabel);
prompt.AcceptButton = confirmation;
return prompt.ShowDialog() == DialogResult.OK ? true : false;
}
}
}
该文件存储在项目资源中,编译得很好,但不显示图像。
答案 0 :(得分:1)
当图像的像素大小太大时,PictureBox
默认只显示图像的左上角。
试试这个:
image.SizeMode = PictureBoxSizeMode.Zoom;
来自MSDN:
默认情况下,在“正常”模式下,“图像”位于PictureBox的左上角,图像的任何对于PictureBox来说太大的部分都会被剪裁。使用StretchImage值会导致图像拉伸或缩小以适合PictureBox。使用“缩放”值可以拉伸或缩小图像以适合PictureBox;但是,保持原件的纵横比。
答案 1 :(得分:0)
尝试通过以下方式拉伸图片框上的图片:
image.SizeMode = PictureBoxSizeMode.StretchImage;
Using the StretchImage value causes the image to stretch or shrink to fit the PictureBox.