【发布时间】:2013-03-22 15:21:10
【问题描述】:
我需要在单独的对话框中显示MonthCalendar,如下所示:
问题在于此日历的显示取决于应用程序运行的系统,从而导致诸如此类的变化(来自同一应用程序,在不同的 PC 上):
据我了解,这取决于应用程序恰好在其下运行的视觉风格或主题。问题是,如何计算需要放置日历的表格的适当大小,或者以其他方式在具有不同主题的多个系统上使其看起来优雅?
我对当前的代码很不满意,它将日历放置在一个表单 (container) 中,该表单被赋予了适合一个特定主题的(硬编码)大小(第一张图片):
private static Form SetUpCalendar()
{
var calendar = new MonthCalendar
{
MaxSelectionCount = maxSelectionCount,
BackColor = SystemColors.Info,
CalendarDimensions = new Size(1, 1),
// (..etc...)
};
var container = new Form
{
FormBorderStyle = FormBorderStyle.FixedDialog,
Size = new Size(calendar.Width + 74, calendar.Height + 47)
};
container.Controls.AddRange(new Control[] {calendar});
return container;
}
我无法找到自动调整表单大小以更好地适应日历的方法,如果您提供有关如何改进这一点的任何提示,我将不胜感激。
【问题讨论】:
标签: c# .net winforms resize themes