示例#1
0
 private static void OnBackgroundChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
 {
     if (e.NewValue != e.OldValue)
     {
         GB_GridHeader header = d as GB_GridHeader;
         GDI.Brush     brush  = ConvertWpfBrush2GDI(e.NewValue as Brush, header.m_bufferedBmp.PixelHeight);
         if (brush != null)
         {
             header.m_background.Dispose();
             header.m_background = brush;
         }
     }
 }
示例#2
0
            protected override void OnRender(DrawingContext drawingContext)
            {
                base.OnRender(drawingContext);
                if (mDraggedElement != null)
                {
                    Win32.POINT screenPos = new Win32.POINT();
                    if (Win32.GetCursorPos(ref screenPos))
                    {
                        int           iPosition = -1;
                        GB_GridHeader header    = mDraggedElement as GB_GridHeader;
                        if (header != null)
                        {
                            Point pt = header.PointFromScreen(new Point(screenPos.X, screenPos.Y));
                            System.Diagnostics.Debug.WriteLine("pt  = " + pt.X);
                            double dX      = pt.X;
                            int    iColumn = header.GetCellColumn(ref dX);
                            if (iColumn >= 0)
                            {
                                iPosition = header.GetCellPosition(iColumn);
                            }
                        }
                        Point pos = PointFromScreen(new Point(screenPos.X, screenPos.Y));

                        Rect rect = new Rect(pos.X, pos.Y, contentbmp.PixelWidth, contentbmp.PixelHeight);
                        drawingContext.PushOpacity(0.7);
                        drawingContext.DrawImage(contentbmp, rect);
                        if (iPosition >= 0)
                        {
                            Point pos1 = header.PointToScreen(new Point(iPosition, header.ActualHeight));
                            pos1 = PointFromScreen(pos1);


                            lgArrow.Transform = new TranslateTransform(pos1.X, pos1.Y);
                            drawingContext.DrawGeometry(header.Foreground, new Pen(header.Foreground, 1), lgArrow);
                        }
                        drawingContext.Pop();
                    }
                }
            }