0

任何人都可以在 Microsoft Outlook 插入签名模式中识别选择要编辑的签名、选择默认签名和编辑签名的 Windows 窗体控件的类型吗?我无法弄清楚它是否是一个超级缩小的面板,或者它是否是我找不到的其他控件?

在此处输入图像描述

4

2 回答 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中的样式会更容易。

必读的还有MSDN - How To Define a GroupBox Template

于 2013-01-29T19:15:32.593 回答