WPF中ListView添加网格线


[ContentProperty("Target")] public class GridLineDecorator : FrameworkElement { private ListView _target; private DrawingVisual _gridLinesVisual = new DrawingVisual(); private GridViewHeaderRowPresenter _headerRowPresenter = null; public GridLineDecorator() { this.AddVisualChild(_gridLinesVisual); this.AddHandler(ScrollViewer.ScrollChangedEvent, new RoutedEventHandler(OnScrollChanged)); } #region GridLineBrush /// <summary> /// GridLineBrush Dependency Property /// </summary> public static readonly DependencyProperty GridLineBrushProperty = DependencyProperty.Register("GridLineBrush", typeof(Brush), typeof(GridLineDecorator), new FrameworkPropertyMetadata(Brushes.LightGray, new PropertyChangedCallback(OnGridLineBrushChanged))); /// <summary> /// Gets or sets the GridLineBrush property. This dependency property /// indicates .... /// </summary> public Brush GridLineBrush { get { return (Brush)GetValue(GridLineBrushProperty); } set { SetValue(GridLineBrushProperty, value); } } /// <summary> /// Handles changes to the GridLineBrush property. /// </summary> private static void OnGridLineBrushChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { ((GridLineDecorator)d).OnGridLineBrushChanged(e); } /// <summary> /// Provides derived classes an opportunity to handle changes to the GridLineBrush property. /// </summary> protected virtual void OnGridLineBrushChanged(DependencyPropertyChangedEventArgs e) { DrawGridLines(); } #endregion #region Target public ListView Target { get { return _target; } set { if (_target != value) { if (_target != null) Detach(); RemoveVisualChild(_target); RemoveLogicalChild(_target); _target = value; AddVisualChild(_target); AddLogicalChild(_target); if (_target != null) Attach(); InvalidateMeasure(); } } } private void GetGridViewHeaderPresenter() { if (Target == null) { _headerRowPresenter = null; return; } _headerRowPresenter = Target.GetDes
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值