C# C#
NFS_most_WAN330 3 апр 2018
Пишу Control для WinForms
Вообщем пишу свой собственный Control для WinForms.
Суть этого контрола заключается в том что можно добавить плитку на форму, а в этой плитке можно разместить уже изображение или текст или все вместе
Проблема возникла в том что при выборе изображения оно отображается нормально
[file=73078173]
[file=73078174]
[file=73078221]
Больше всего интересует 3 вариант, как изменить размеры к фото
Суть этого контрола заключается в том что можно добавить плитку на форму, а в этой плитке можно разместить уже изображение или текст или все вместе
Проблема возникла в том что при выборе изображения оно отображается нормально
[file=73078173]
var G = e.Graphics;
// Width - ширина контрола
// Height - высота контрола
var r = new Rectangle(1, 1, Width - 2, Height - 2);
G.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;
G.SmoothingMode = SmoothingMode.HighQuality;
G.CompositingQuality = CompositingQuality.HighQuality;
G.InterpolationMode = InterpolationMode.HighQualityBicubic;
G.DrawImage(BackgroundImage, r);
Теперь другой вариант, если добавить елипс к этому изображению то выводит без сглаживания[file=73078174]
var G = e.Graphics;
// Width - ширина контрола
// Height - высота контрола
var r = new Rectangle(1, 1, Width - 2, Height - 2);
G.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;
G.SmoothingMode = SmoothingMode.HighQuality;
G.CompositingQuality = CompositingQuality.HighQuality;
G.InterpolationMode = InterpolationMode.HighQualityBicubic;
using (GraphicsPath gp = new GraphicsPath())
{
gp.AddEllipse(0, 0, Width, Height);
gp.CloseFigure();
G.Clear(Color.White);
G.SetClip(gp);
G.DrawImage(BackgroundImage, r);
}
Третий вариант, если написать так, то сглаживание естьvar G = e.Graphics;
// Width - ширина контрола
// Height - высота контрола
var r = new Rectangle(1, 1, Width - 2, Height - 2);
G.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;
G.SmoothingMode = SmoothingMode.HighQuality;
G.CompositingQuality = CompositingQuality.HighQuality;
G.InterpolationMode = InterpolationMode.HighQualityBicubic;
using (GraphicsPath gp = new GraphicsPath())
{
gp.AddEllipse(0, 0, Width, Height);
gp.CloseFigure();
G.Clear(Color.White);
using (Brush b = new TextureBrush(BackgroundImage))
{
G.FillPath(b, gp);
G.DrawPath(new Pen(b), gp);
}
}
но выводит всего часть изображения[file=73078221]
Больше всего интересует 3 вариант, как изменить размеры к фото
0 3 0
Комментарии (64)
Для добавления комментариев необходимо авторизоваться
Легенды Крови
Удивительный мир фантазий, сражений и тайн... Битв