似乎无法弄清楚如何做到这一点。我有一个继承的 Control: MyControl和一个名为MyOtherFont的属性。如何让MyOtherFont继承父控件的Font属性的环境值?
例如,如果我将此控件拖到字体为 Segoe UI 的窗体上,则从设计器那里,它应该从窗体继承该值,而不是在属性窗口中将其显示为粗体。
谢谢
似乎无法弄清楚如何做到这一点。我有一个继承的 Control: MyControl和一个名为MyOtherFont的属性。如何让MyOtherFont继承父控件的Font属性的环境值?
例如,如果我将此控件拖到字体为 Segoe UI 的窗体上,则从设计器那里,它应该从窗体继承该值,而不是在属性窗口中将其显示为粗体。
谢谢
弄清楚了。这是一个 C# 示例,它完全符合我的示例所描述的内容。希望这可以帮助某人。
public class MyControl : Control
{
private Font myOtherFont;
public Font MyOtherFont
{
get
{
if (this.myOtherFont == null)
{
if (base.Parent != null)
return base.Parent.Font;
}
return this.myOtherFont;
}
set
{
this.myOtherFont = value;
}
}
private bool ShouldSerializeMyOtherFont()
{
if (base.Parent != null)
if (base.Parent.Font.Equals(this.MyOtherFont))
return false;
if (this.MyOtherFont == null)
return false;
return true;
}
private void ResetMyOtherFont()
{
if (base.Parent != null)
this.MyOtherFont = base.Parent.Font;
else
this.MyOtherFont = Control.DefaultFont;
}
}