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