C# 更改月日历大小
是否有任何可能的方法更改日历控件的宽度和高度。我想更改日历的宽度和高度。这些步骤是我在谷歌上搜索时发现的 1) 在面板中删除月历并允许删除true。并增加面板的大小。不适合我。 2) 将月历放入“组”框并停靠填充。这将显示本月的多个月。 3) 增加日历控件的字体大小,对我不起作用C# 更改月日历大小,c#,.net,winforms,monthcalendar,C#,.net,Winforms,Monthcalendar,是否有任何可能的方法更改日历控件的宽度和高度。我想更改日历的宽度和高度。这些步骤是我在谷歌上搜索时发现的 1) 在面板中删除月历并允许删除true。并增加面板的大小。不适合我。 2) 将月历放入“组”框并停靠填充。这将显示本月的多个月。 3) 增加日历控件的字体大小,对我不起作用 有没有办法做到这一点。提前感谢您的评论遗憾的是,您无法调整月历控件的大小,至少不能按您希望的方式调整 唯一的“调整大小”将在第一个月的基础上再增加一个月(您可以通过增加“最小大小”属性来实现) 如果要调整控件的大小,但
有没有办法做到这一点。提前感谢您的评论遗憾的是,您无法调整月历控件的大小,至少不能按您希望的方式调整 唯一的“调整大小”将在第一个月的基础上再增加一个月(您可以通过增加“最小大小”属性来实现) 如果要调整控件的大小,但仍仅显示一个月,则必须创建自己的控件,或使用任何第三方控件,如使用视觉样式渲染控件时,其大小仅遵循系统设置,并且无法更改其大小。但是,作为一个选项,您可以禁用此控件的视觉样式,并为控件设置更大的字体,以使用以下命令更改其大小: 然后它将显示如下(字体大小:16): 与默认外观相比:
您还可以将日历小部件放入“Viewbox”小部件中。 日历将使用viewbox调整大小。 链接至我的来源(2019年10月28日):
希望我能帮助您。问题被标记为WinForms。您能解释一下这是如何工作的吗?我只看到控件将自己的句柄传递给SetWindowTheme()?什么主题开始发挥作用?如何通过将空字符串作为参数来禁用这个控件的视觉样式?@ ReV1.0,它禁用主题。谢谢,我可以确认这是可行的。你应该考虑接受Reza Aghaei的答案。
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
public class MyMonthCalendar : MonthCalendar
{
[DllImport("uxtheme.dll", ExactSpelling = true, CharSet = CharSet.Unicode)]
static extern int SetWindowTheme(IntPtr hwnd, string pszSubAppName, string pszSubIdList);
protected override void OnHandleCreated(EventArgs e)
{
SetWindowTheme(Handle, string.Empty, string.Empty);
base.OnHandleCreated(e);
}
}