【发布时间】:2011-02-24 14:54:43
【问题描述】:
我正在使用 C#2.0,我想创建一个 facebook 样式的工具提示窗口。我目前使用 2 个窗口和透明键。一个用于三角形箭头指针,一个用于正方形。整个画面是这样的:
我在重绘时遇到问题(如图所示)。
有没有办法在上面使用整个形状的窗口? (虽然我需要使它变大) 如果不是,这是正确的方法吗?或者我需要将三角形“粘”到矩形上
【问题讨论】:
标签: c# .net winforms winapi c#-2.0
我正在使用 C#2.0,我想创建一个 facebook 样式的工具提示窗口。我目前使用 2 个窗口和透明键。一个用于三角形箭头指针,一个用于正方形。整个画面是这样的:
我在重绘时遇到问题(如图所示)。
有没有办法在上面使用整个形状的窗口? (虽然我需要使它变大) 如果不是,这是正确的方法吗?或者我需要将三角形“粘”到矩形上
【问题讨论】:
标签: c# .net winforms winapi c#-2.0
两种方法解决--
使用透明度:Irregular shaped Windows Form (C#)
或者使用Control.Region,它是窗口的实际形状。大量样品或: How do I make a genuinely transparent Control?
protected override void OnSizeChanged(EventArgs e)
{
base.OnSizeChanged(e);
const int ArrowSize = 25;
Point[] points = new[] {
new Point(ArrowSize, 0),
new Point(this.Width, 0),
new Point(this.Width, this.Height),
new Point(ArrowSize, this.Height),
new Point(ArrowSize, ArrowSize),
new Point(0, ArrowSize/2)
// don't need - autocloses
// ,new Point(ArrowSize, 0)
};
GraphicsPath path = new GraphicsPath();
path.AddLines(points);
this.Region = new Region(path);
}
【讨论】: