C# Calendar.NET控件FirstDayOfWeek
我正在使用VB.NET上的组件,但我想将星期一改为星期一 这是代码呈现日历 我碰巧把那天的名字改成了土耳其语,但我无法改变第一天的名字C# Calendar.NET控件FirstDayOfWeek,c#,C#,我正在使用VB.NET上的组件,但我想将星期一改为星期一 这是代码呈现日历 我碰巧把那天的名字改成了土耳其语,但我无法改变第一天的名字 private void RenderMonthCalendar(PaintEventArgs e) { _calendarDays.Clear(); _calendarEvents.Clear(); var bmp = new Bitmap(ClientSize.Width, ClientSize
private void RenderMonthCalendar(PaintEventArgs e)
{
_calendarDays.Clear();
_calendarEvents.Clear();
var bmp = new Bitmap(ClientSize.Width, ClientSize.Height);
Graphics g = Graphics.FromImage(bmp);
e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
SizeF monSize = g.MeasureString("Pazartesi", _dayOfWeekFont);
SizeF tueSize = g.MeasureString("Salı", _dayOfWeekFont);
SizeF wedSize = g.MeasureString("Çarşamba", _dayOfWeekFont);
SizeF thuSize = g.MeasureString("Perşembe", _dayOfWeekFont);
SizeF friSize = g.MeasureString("Cuma", _dayOfWeekFont);
SizeF satSize = g.MeasureString("Cumartesi", _dayOfWeekFont);
SizeF sunSize = g.MeasureString("Pazar", _dayOfWeekFont);
SizeF dateHeaderSize = g.MeasureString(
_calendarDate.ToString("MMMM") + " " + _calendarDate.Year.ToString(new CultureInfo("tr-TR")), _dateHeaderFont);
int headerSpacing = Max(sunSize.Height, monSize.Height, tueSize.Height, wedSize.Height, thuSize.Height, friSize.Height,
satSize.Height) + 5;
int controlsSpacing = ((!_showTodayButton) && (!_showDateInHeader) && (!_showArrowControls)) ? 0 : 30;
int cellWidth = (ClientSize.Width - MarginSize * 2) / 7;
int numWeeks = NumberOfWeeks(_calendarDate.Year, _calendarDate.Month);
int cellHeight = (ClientSize.Height - MarginSize * 2 - headerSpacing - controlsSpacing) / numWeeks;
int xStart = MarginSize;
int yStart = MarginSize;
DayOfWeek startWeekEnum = new DateTime(_calendarDate.Year, _calendarDate.Month, 1).DayOfWeek;
int startWeek = ((int)startWeekEnum) + 1;
int rogueDays = startWeek - 1;
yStart += headerSpacing + controlsSpacing;
int counter = 1;
int counter2 = 1;
bool first = false;
bool first2 = false;
_btnToday.Location = new Point(MarginSize, MarginSize);
for (int y = 0; y < numWeeks; y++)
{
for (int x = 0; x < 7; x++)
{
if (rogueDays == 0 && counter <= DateTime.DaysInMonth(_calendarDate.Year, _calendarDate.Month))
{
if (!_calendarDays.ContainsKey(counter))
_calendarDays.Add(counter, new Point(xStart, (int)(yStart + 2f + g.MeasureString(counter.ToString(new CultureInfo("tr-TR")), _daysFont).Height)));
if (_calendarDate.Year == DateTime.Now.Year && _calendarDate.Month == DateTime.Now.Month
&& counter == DateTime.Now.Day && _highlightCurrentDay)
{
g.FillRectangle(new SolidBrush(Color.FromArgb(234, 234, 234)), xStart, yStart, cellWidth, cellHeight);
}
if (first == false)
{
first = true;
if (_calendarDate.Year == DateTime.Now.Year && _calendarDate.Month == DateTime.Now.Month
&& counter == DateTime.Now.Day)
{
g.DrawString(
_calendarDate.ToString("MMM") + " " + counter.ToString(new CultureInfo("tr-TR")),
_todayFont, Brushes.Black, xStart + 5, yStart + 2);
}
else
{
g.DrawString(
_calendarDate.ToString("MMM") + " " + counter.ToString(new CultureInfo("tr-TR")),
_daysFont, Brushes.Black, xStart + 5, yStart + 2);
}
}
else
{
if (_calendarDate.Year == DateTime.Now.Year && _calendarDate.Month == DateTime.Now.Month
&& counter == DateTime.Now.Day)
{
g.DrawString(counter.ToString(new CultureInfo("tr-TR")), _todayFont, Brushes.Black, xStart + 5, yStart + 2);
}
else
{
g.DrawString(counter.ToString(new CultureInfo("tr-TR")), _daysFont, Brushes.Black, xStart + 5, yStart + 2);
}
}
counter++;
}
else if (rogueDays > 0)
{
int dm =
DateTime.DaysInMonth(_calendarDate.AddMonths(-1).Year, _calendarDate.AddMonths(-1).Month) -
rogueDays + 1;
g.DrawString(dm.ToString(new CultureInfo("tr-TR")), _daysFont, new SolidBrush(Color.FromArgb(170, 170, 170)), xStart + 5, yStart + 2);
rogueDays--;
}
g.DrawRectangle(Pens.DarkGray, xStart, yStart, cellWidth, cellHeight);
if (rogueDays == 0 && counter > DateTime.DaysInMonth(_calendarDate.Year, _calendarDate.Month))
{
if (first2 == false)
first2 = true;
else
{
if (counter2 == 1)
{
g.DrawString(_calendarDate.AddMonths(1).ToString("MMM") + " " + counter2.ToString(new CultureInfo("tr-TR")), _daysFont,
new SolidBrush(Color.FromArgb(170, 170, 170)), xStart + 5, yStart + 2);
}
else
{
g.DrawString(counter2.ToString(new CultureInfo("tr-TR")), _daysFont,
new SolidBrush(Color.FromArgb(170, 170, 170)), xStart + 5, yStart + 2);
}
counter2++;
}
}
xStart += cellWidth;
}
xStart = MarginSize;
yStart += cellHeight;
}
yStart = MarginSize + controlsSpacing;
xStart = MarginSize + ((cellWidth - (int)sunSize.Width) / 2);
g.DrawString("Pazar", _dayOfWeekFont, Brushes.Black, xStart, yStart);
xStart = MarginSize + ((cellWidth - (int)monSize.Width) / 2) + cellWidth;
g.DrawString("Pazartesi", _dayOfWeekFont, Brushes.Black, xStart, yStart);
xStart = MarginSize + ((cellWidth - (int)tueSize.Width) / 2) + cellWidth * 2;
g.DrawString("Salı", _dayOfWeekFont, Brushes.Black, xStart, yStart);
xStart = MarginSize + ((cellWidth - (int)wedSize.Width) / 2) + cellWidth * 3;
g.DrawString("Çarşamba", _dayOfWeekFont, Brushes.Black, xStart, yStart);
xStart = MarginSize + ((cellWidth - (int)thuSize.Width) / 2) + cellWidth * 4;
g.DrawString("Perşembe", _dayOfWeekFont, Brushes.Black, xStart, yStart);
xStart = MarginSize + ((cellWidth - (int)friSize.Width) / 2) + cellWidth * 5;
g.DrawString("Cuma", _dayOfWeekFont, Brushes.Black, xStart, yStart);
xStart = MarginSize + ((cellWidth - (int)satSize.Width) / 2) + cellWidth * 6;
g.DrawString("Cumartesi", _dayOfWeekFont, Brushes.Black, xStart, yStart);
if (_showDateInHeader)
{
g.DrawString(
_calendarDate.ToString("MMMM") + " " + _calendarDate.Year.ToString(new CultureInfo("tr-TR")),
_dateHeaderFont, Brushes.Black, ClientSize.Width - MarginSize - dateHeaderSize.Width,
MarginSize);
}
_events.Sort(new EventComparer());
for (int i = 1; i <= DateTime.DaysInMonth(_calendarDate.Year, _calendarDate.Month); i++)
{
int renderOffsetY = 0;
foreach (IEvent v in _events)
{
var dt = new DateTime(_calendarDate.Year, _calendarDate.Month, i, 23, 59, _calendarDate.Second);
if (NeedsRendering(v, dt))
{
int alpha = 255;
if (!v.Enabled && _dimDisabledEvents)
alpha = 64;
Color alphaColor = Color.FromArgb(alpha, v.EventColor.R, v.EventColor.G, v.EventColor.B);
int offsetY = renderOffsetY;
Region r = g.Clip;
Point point = _calendarDays[i];
SizeF sz = g.MeasureString(v.EventText, v.EventFont);
int yy = point.Y - 1;
int xx = ((cellWidth - (int)sz.Width) / 2) + point.X;
if (sz.Width > cellWidth)
xx = point.X;
if (renderOffsetY + sz.Height > cellHeight - 10)
continue;
g.Clip = new Region(new Rectangle(point.X + 1, point.Y + offsetY, cellWidth - 1, (int)sz.Height));
g.FillRectangle(new SolidBrush(alphaColor), point.X + 1, point.Y + offsetY, cellWidth - 1, sz.Height);
if (!v.Enabled && _showDashedBorderOnDisabledEvents)
{
var p = new Pen(new SolidBrush(Color.FromArgb(255, 0, 0, 0))) { DashStyle = DashStyle.Dash };
g.DrawRectangle(p, point.X + 1, point.Y + offsetY, cellWidth - 2, sz.Height - 1);
}
g.DrawString(v.EventText, v.EventFont, new SolidBrush(v.EventTextColor), xx, yy + offsetY);
g.Clip = r;
var ev = new CalendarEvent
{
EventArea =
new Rectangle(point.X + 1, point.Y + offsetY, cellWidth - 1,
(int)sz.Height),
Event = v,
Date = dt
};
_calendarEvents.Add(ev);
renderOffsetY += (int)sz.Height + 1;
}
}
}
_rectangles.Clear();
g.Dispose();
e.Graphics.DrawImage(bmp, 0, 0, ClientSize.Width, ClientSize.Height);
bmp.Dispose();
}
private void RenderMonthCalendar(PaintEventArgs e)
{
_calendarDays.Clear();
_calendarEvents.Clear();
var bmp=新位图(ClientSize.Width、ClientSize.Height);
Graphics g=Graphics.FromImage(bmp);
e、 Graphics.TextRenderingHint=System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
g、 TextRenderingHint=System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
SizeF monSize=g.MeasureString(“Pazartesi”,星期五);
SizeF tueSize=g.测量限制(“Salı”,_dayOfWeekFont);
SizeF wedSize=g.测量(“şamba”,_dayOfWeekFont);
SizeF thuSize=g.MeasureString(“每星期一日”);
SizeF friSize=g.测量值(“Cuma”、\u dayOfWeekFont);
SizeF satSize=g.测量值(“Cumartesi”,星期五);
SizeF sunSize=g.测量限制(“Pazar”,周方);
SizeF dateHeaderSize=g.MeasureString(
_calendarDate.ToString(“MMMM”)+“+”calendarDate.Year.ToString(新文化信息(“tr”),_dateHeaderFont);
int HEADERSPACE=Max(sunSize.Height、monSize.Height、tueSize.Height、wedSize.Height、thuSize.Height、friSize.Height、,
高度)+5;
int controls space=(!\u showtoday按钮)和(!\u showtdateinheader)和(!\u showtarrowcontrols))?0:30;
int cellWidth=(ClientSize.Width-MarginSize*2)/7;
int numWeeks=NumberOfWeeks(_calendarDate.Year,_calendarDate.Month);
int cellHeight=(ClientSize.Height-MarginSize*2-headerspace-controlssspace)/numweek;
int xStart=MarginSize;
int yStart=MarginSize;
DayOfWeek startWeekEnum=新的日期时间(_calendarDate.Year,_calendarDate.Month,1)。DayOfWeek;
int startWeek=((int)startWeekEnum)+1;
int rogueDays=startWeek-1;
yStart+=头部起搏+控制起搏;
int计数器=1;
int计数器2=1;
bool first=false;
bool first2=假;
_btnToday.Location=新点(MarginSize,MarginSize);
对于(int y=0;yDateTime.DaysInMonth(\u calendarDate.Year,\u calendarDate.Month))
{
if(first2==false)
first2=真;
其他的
{
如果(计数器2==1)
{
g、 DrawString(_calendarDate.AddMonths(1).ToString(“MMM”)+“”+counter2.ToString(new CultureInfo(“tr”),_daysFont,
新的SolidBrush(颜色为argb(170170170)),xStart+5,yStart+2;
}
其他的
{
g、 抽绳(计数器2.ToString(新文化信息(“tr”)),\u daysFont,
新的SolidBrush(颜色为argb(170170170)),xStart+5,yStart+2;
}
计数器2++;
}
}
xStart+=cellWidth;
}
xStart=MarginSize;
yStart+=单元高度;
}
yStart=MarginSize+controlsSpacing;
xStart=MarginSize+((cellWidth-(int)sunSize.Width)/2);
g、 抽绳(“Pazar”,dayOfWeekFont,刷子。黑色,xStart,yStart);
xStart=MarginSize+((cellWidth-(int)monSize.Width)/2)+cellWidth;
g、 抽绳(“Pazartesi”,(dayOfWeekFont,Brush.Black,xStart,yStart);
xStart=MarginSize+((cellWidth-(int)tueSize.Width)/2)+cellWidth*2;
g、 抽绳(“Salı”,“dayOfWeekFont,Brush.Black,xStart,yStart”);
xStart=MarginSize+((cellWidth-(int)wedSize.Width)/2)+cellWidth*3;
g、 抽绳(“şaramba”,“dayOfWeekFont,Brushes.Black,xStart,yStart”);
xStart=MarginSize+((cellWidth-(int)thuSize.Width)/2)+cellWidth*4;
g、 抽绳(“Perşembe”,“dayOfWeekFont,Brushes.Black,xStart,yStart”);
xStart=MarginSize+((cellWidth-(int)friSize.Width)/2)+cellWidth*5;
g、 抽绳(“Cuma”),_dayOfWeekFont,刷子。黑色,xStart,yStart);
xStart=MarginSize+((cellWidth-(int)satSize.Width)/2)+cellWidth*6;
g、 抽绳(“Cumartesi”,dayOfWeekFont,Brushes.Black,xStart,yStart);
如果(_showDateInHeader)
{
g、 抽绳(
_calendarDate.ToString(“MMMM”)+“”+_calendarDate.Year.ToString(新文化信息(“tr”)),
_dateHeaderFont,Brush.Black,ClientSize.Width-MarginSize-dateHeaderSize.Width,
边缘化);
}
_排序(新的EventComparer());
对于(int i=1;i单元格宽度)
xx=点X;
如果(renderofsety+sz.Height>cellHeight-10)
继续;
g、 Clip=新区域(新矩形(点.X+1,点.Y+offsetY,cellWidth-1,(int)sz.Height));
g、 圆角矩形(新的SolidBrush(alp