我在Windows窗体中遇到跨主题兼容性问题。如果没有在Windows窗体上设置控件的字体,它将使用具有正确字体和大小的系统字体。如果您想使字体粗体,则硬编码您正在编程的当前主题的其余系统字体值。例如:
System::Windows::Forms::Label^ label1 = gcnew System::Windows::Forms::Label();
this->label1->AutoSize = true;
this->label1->Location = System::Drawing::Point(9, 12);
this->label1->Name = L"lblExample";
this->label1->Size = System::Drawing::Size(44, 13);
this->label1->TabIndex = 3;
this->label1->Text = L"Example Text";
如果我然后通过属性编辑器更改其属性以使bold = true,则会在此行中添加:
this->label1->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 8.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point, static_cast<System::Byte>(0)));
有没有办法使用默认字体,但是加粗?
此外,是否有使用系统字体的方法,但是将尺寸增大3或4个点?
答案 0 :(得分:1)
this->label1->Font = gcnew System::Drawing::Font(this->label1->Font, FontStyle::Bold);
但现在这打破了设计师的观点:(
答案 1 :(得分:1)
您可以在构造函数中的InitializeComponent调用之后直接放置修改后的字体初始化。
此外,您可以使用众多构造函数中的一个来更改大小。
InitializeComponent();
label1->Font = gcnew System::Drawing::Font(
label1->Font->FontFamily,
label1->Font->SizeInPoints + 4,
FontStyle::Bold,
GraphicsUnit::Point);
这样可以避免设计视图混淆......但您也无法在设计视图中看到它。