Esempio n. 1
0
        private void DrawWeekCell(DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e, HolidayWeekInfo weekinfo, DateTime date)
        {
            bool bFocused = gvAbsencePlanning.IsCellSelected(e.RowHandle, e.Column);

            EmployeeLongTimeAbsence absence = weekinfo.GetEmployeeLongTimeAbsence(date);

            if (absence != null)
            {
                
                if (bFocused)
                {
                    e.Cache.FillRectangle(Color.LightBlue, Rectangle.Inflate(e.Bounds, 1, 1));
                    e.Cache.DrawRectangle(e.Cache.GetPen(Color.Black), Rectangle.Inflate(e.Bounds, 1, 1));
                }
                else
                {

                    Color color = Color.FromArgb(absence.Absence.Color);
                    e.Cache.FillRectangle(e.Cache.GetSolidBrush(color), e.Bounds);
                    
                }
                e.Cache.DrawString(absence.Absence.CharID, e.Appearance.Font, e.Cache.GetSolidBrush(e.Appearance.ForeColor), e.Bounds, e.Appearance.TextOptions.GetStringFormat());
            }
            else
            {
                if (bFocused)
                {
                    e.Cache.FillRectangle(Color.LightBlue, Rectangle.Inflate(e.Bounds, 1, 1));
                    e.Cache.DrawRectangle(e.Cache.GetPen(Color.Black), Rectangle.Inflate(e.Bounds, 1, 1));
                }
                List<AbsenceTimeRange> lst = weekinfo.GetAbsencesByDate(date);

                if (lst != null && lst.Count > 0)
                {
                    Font cellfont = e.Appearance.Font;
                    Rectangle cellBound = Rectangle.Inflate(e.Bounds , -1, -1);
                    Brush cellbrush = Brushes.White;
                    Brush absenceBrush = null;
                    StringFormat sformat = new StringFormat(StringFormatFlags.MeasureTrailingSpaces |
                                            StringFormatFlags.NoWrap);
                    cellbrush = Brushes.Black;
                    
                    string str = String.Empty;
                    int heightCell = (int)(cellBound.Height);// / 2);
                    foreach (AbsenceTimeRange range in lst)
                    {
                        str = TextParser.AbsenceTimeRangeToString(range.Begin, range.End,  range.Absence.CharID);

                        Size sf = e.Cache.CalcTextSize(str, cellfont, sformat, 10000).ToSize();

                        absenceBrush = e.Cache.GetSolidBrush(Color.FromArgb(range.Absence.Color));
                        e.Cache.DrawString(str, cellfont, absenceBrush, cellBound, sformat);

                        cellBound.Y += sf.Height + 2;
                        heightCell -= (sf.Height + 2);
                        if ((heightCell - (sf.Height + 2)) < 0) break;
                    }
                }
            }

            e.Handled = true;


        }
Esempio n. 2
0
        private void DrawWeekCell(DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e, HolidayWeekInfo weekinfo)
        {
            bool bFocused = gvAbsencePlanning.IsCellSelected(e.RowHandle, e.Column);

            Color color = weekinfo.WeekColor;
            string value = weekinfo.Value;

            if (bFocused)
                color = Color.LightBlue;

            e.Appearance.BackColor = e.Appearance.BackColor2 = color;
            e.Cache.FillRectangle(e.Cache.GetSolidBrush(color), e.Bounds);
            e.Cache.DrawString(value, e.Appearance.Font, e.Cache.GetSolidBrush(e.Appearance.ForeColor), e.Bounds, e.Appearance.TextOptions.GetStringFormat());
            e.Handled = true;


        }