任何人都可以在 Microsoft Outlook 插入签名模式中识别选择要编辑的签名、选择默认签名和编辑签名的 Windows 窗体控件的类型吗?我无法弄清楚它是否是一个超级缩小的面板,或者它是否是我找不到的其他控件?
问问题
360 次
2 回答
3
它们根本不是控件。您在该对话框中看到的大部分内容是我所说的“伪控件”,即看起来和操作为控件但没有系统窗口的绘制位。您可以通过使用 Spy 工具查找(不存在的)系统窗口来查看这一点。
您可以使用 Graphics.DrawText 和 ControlPaint.DrawXXX 自己实现这一点,其中 XXX 我不确定。也许是 Border 或 3DBorder?
这是一个廉价而肮脏的例子。我使用了 WinForms Label 控件,因为它很简单。
using System;
using System.Drawing;
using System.Windows.Forms;
public class Form1 : Form
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
public Form1()
{
ClientSize = new Size(400, 200);
Controls.Add(new LineLabel { Text = "Edit signature", Location = new Point(10, 10), Anchor = AnchorStyles.Left | AnchorStyles.Right, Width = 380 });
}
}
public class LineLabel : Label
{
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
SizeF textSize = e.Graphics.MeasureString(this.Text, this.Font);
int leftWidth = (int)(textSize.Width + 2);
Rectangle bounds = new Rectangle(leftWidth, Height / 2 - 4, Bounds.Width - leftWidth, 2);
ControlPaint.DrawBorder(e.Graphics, bounds, Color.DarkGray, ButtonBorderStyle.Solid);
}
}
于 2013-01-29T19:26:47.383 回答
1
它们是 GroupBox,尽管它们的边界看起来有些修改。如果您想自定义自己的,您可以为 WinForms 组框(在某种程度上)执行此操作,但事实证明,使用 WPF 组框并阅读样式化 GroupBox中的样式会更容易。
于 2013-01-29T19:15:32.593 回答