0

編集する署名の選択、既定の署名の選択、および署名の編集が Microsoft Outlook の挿入署名モーダルにある Windows フォーム コントロールの種類を誰でも特定できますか? それが超縮んだパネルなのか、それとも私が見つけていない他のコントロールなのかわかりませんか?

ここに画像の説明を入力

4

2 に答える 2

3

それらはまったくコントロールではありません。そのダイアログに表示されるほとんどのものは、私が「疑似コントロール」と呼んでいるものです。これは、コントロールのように見えて動作するペイントされたビットですが、システム ウィンドウはありません。これは、Spy ツールを使用して (存在しない) システム ウィンドウを見つけることで確認できます。

これは、Graphics.DrawText と ControlPaint.DrawXXX を使用して自分で実現できますが、XXX についてはよくわかりません。たぶんボーダー、または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を使用して、StylingaGroupBoxでスタイルを確認する方がはるかに簡単です。

必読はMSDN-GroupBoxテンプレートを定義する方法でもあります。

于 2013-01-29T19:15:32.593 に答える