Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更改月日历大小_C#_.net_Winforms_Monthcalendar - Fatal编程技术网

C# 更改月日历大小

C# 更改月日历大小,c#,.net,winforms,monthcalendar,C#,.net,Winforms,Monthcalendar,是否有任何可能的方法更改日历控件的宽度和高度。我想更改日历的宽度和高度。这些步骤是我在谷歌上搜索时发现的 1) 在面板中删除月历并允许删除true。并增加面板的大小。不适合我。 2) 将月历放入“组”框并停靠填充。这将显示本月的多个月。 3) 增加日历控件的字体大小,对我不起作用 有没有办法做到这一点。提前感谢您的评论遗憾的是,您无法调整月历控件的大小,至少不能按您希望的方式调整 唯一的“调整大小”将在第一个月的基础上再增加一个月(您可以通过增加“最小大小”属性来实现) 如果要调整控件的大小,但

是否有任何可能的方法更改日历控件的宽度和高度。我想更改日历的宽度和高度。这些步骤是我在谷歌上搜索时发现的 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);
    }
}