`

wpf - Customize the grid lines for original wpf Grid control

阅读更多

The System.WIndows.Controls.Grid classes does provide a ShowGridLines method, while it does not provide means to override the style of the grid lines. 

 

 

Ian Oakes has shows some good ways to use the grid lines and his post is available at "Displaying Grid Lines

 

While it does show the quitessence of programming with styles, so here is what is the most important of the styles.

 

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    
    <Style x:Key="lineStyle" TargetType="Line">

        <Setter Property="Stroke" Value="Gray" />
        <Setter Property="Stretch" Value="Fill" />
        <Setter Property="Grid.ZIndex" Value="100" />
        <Setter Property="StrokeDashArray" Value="1,2" /> <!-- DoubleValueCollection-->
    </Style>
    
    
    <Style x:Key="horizontalLineStyle" TargetType="Line" BasedOn="{StaticResource lineStyle}" >
        <Setter Property="X2" Value="1" />
        <Setter Property="VerticalAlignment" Value="Bottom" />
        <Setter Property="Grid.ColumnSpan" Value="{Binding Path=ColumnDefinitions.Count, RelativeSource={RelativeSource AncestorType=Grid}}" />
    </Style>

    <Style x:Key="verticalLineStyle" TargetType="Line" BasedOn="{StaticResource lineStyle}" >
        <Setter Property="Y2" Value="1" />
        <Setter Property="HorizontalAlignment" Value="Right" />
        <Setter Property="Grid.RowSpan" Value="{Binding Path=RowDefinitions.Count, RelativeSource={RelativeSource AncestorType=Grid}}" />
    </Style>

    <Style x:Key="verticalLineStyleLeft" TargetType="Line" BasedOn="{StaticResource verticalLineStyle}" >
        <Setter Property="HorizontalAlignment" Value="Left" />
    </Style>

    <Style x:Key="horizontalLineStyleTop" TargetType="Line" BasedOn="{StaticResource horizontalLineStyle}" >
        <Setter Property="VerticalAlignment" Value="Top" />
    </Style>
    

</ResourceDictionary>

 

 

and how it is used? how will the styles be applied to draw the grid lines?

 

<Window x:Class="GridLines.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid
        x:Name="Grid" Margin="20"
        >
        <Grid.RowDefinitions>
            <RowDefinition Height="20"/>
            <RowDefinition Height="20"/>
            <RowDefinition Height="20"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="20" />
            <ColumnDefinition Width="20" />
            <ColumnDefinition Width="20" />
        </Grid.ColumnDefinitions>
        
        
        <Line Grid.Column="0" Style="{StaticResource verticalLineStyleLeft}" />
        <Line Grid.Column="0" Style="{StaticResource verticalLineStyle}" />
        <Line Grid.Column="1" Style="{StaticResource verticalLineStyle}" />
        <Line Grid.Column="2" Style="{StaticResource verticalLineStyle}" />
        <Line Grid.Column="3" Style="{StaticResource verticalLineStyle}" />
        
        <Line Grid.Row="0" Style="{StaticResource horizontalLineStyleTop}" />
        <Line Grid.Row="0" Style="{StaticResource horizontalLineStyle}" />
        <Line Grid.Row="1" Style="{StaticResource horizontalLineStyle}" />
        <Line Grid.Row="2" Style="{StaticResource horizontalLineStyle}" />
        <Line Grid.Row="3" Style="{StaticResource horizontalLineStyle}" />

    </Grid>
</Window>

 

 

 

分享到:
评论

相关推荐

    通用WPF主题控件包rubyer-wpf-master

    通用WPF主题控件包rubyer-wpf-master是一款专为Windows Presentation Foundation (WPF) 应用程序设计的开源UI框架。它提供了丰富的主题和控件,旨在帮助开发者快速构建美观且用户友好的应用程序界面。在2.0.0版本中...

    gong-wpf-dragdrop, GongSolutions.WPF.DragDrop 库是WPF的拖动'n'拖放框架.zip

    gong-wpf-dragdrop, GongSolutions.WPF.DragDrop 库是WPF的拖动'n'拖放框架 简介GongSolutions.WPF.DragDrop 库是一个易于使用的拖拉'n'拖放框架。特性使用 MVVM: 拖放逻辑可以放在ViewModel中。 代码不需要放在in中...

    C#开发WPF-Silverlight动画及游戏系列教程-深蓝色右手 4

    C#开发WPF-Silverlight动画及游戏系列教程-深蓝色右手 C#开发WPF-Silverlight动画及游戏系列教程-深蓝色右手 C#开发WPF-Silverlight动画及游戏系列教程-深蓝色右手

    WPF-Samples-master_WPF基本sample_

    WPF的基本空间历程,使用.net core3.0.1版本

    bootstrap-wpf-style-master 样式

    Bootstrap-WPF 样式是一种将流行的前端框架 Bootstrap 的设计风格应用于 WPF(Windows Presentation Foundation)应用程序的方法。Bootstrap 是一个广泛使用的开源工具包,主要用于构建响应式、移动设备优先的网页...

    WPF-Diagram-Designer:WPF图表设计器源代码

    通过深入研究WPF-Diagram-Designer的源代码(如WPF-Diagram-Designer-master文件夹中的内容),开发者不仅可以学习到如何在WPF中构建复杂的图形界面,还可以了解到图形编辑器的设计原理和实现细节,对于提升图形应用...

    wpf---StatusBar

    “wpf---StatusBar”这个标题表明我们将探讨的是WPF(Windows Presentation Foundation)框架中的StatusBar组件。WPF是.NET Framework的一部分,用于构建桌面应用程序,它提供了丰富的用户界面(UI)功能。StatusBar...

    WPF-强大的图表.zip

    **WPF - 强大的图表技术** Windows Presentation Foundation (WPF) 是Microsoft开发的一个用于构建桌面应用程序的框架,它提供了丰富的图形系统,包括对2D和3D图形的强大支持。在WPF中,开发人员可以利用各种图表...

    wpf-datagrid-access DB

    在这个“wpf-datagrid-access DB”主题中,我们将深入探讨如何利用WPF Datagrid与Microsoft Access数据库进行交互,实现数据的读取、更新和保存。 1. **WPF Datagrid简介** - Datagrid是WPF中的一个数据展示控件,...

    lindexi#lindexi#2020-06-28-WPF-如何给-Grid-的某一行添加背景色1

    title: "WPF 如何给 Grid 的某一行添加背景色"其实在 WPF 里面是不存在单独设置 Grid 的某一行的配色,但是想要达到这个视觉效果,可以通过

    Packt.MVVM.Survival.Guide.for.Enterprise.Architectures.in.Silverlight.And.WPF

    Customize the MVVM pattern for your projects needs by comparing the various implementation styles In Detail MVVM (Model View View Model) is a Microsoft best practices pattern for working in WPF and...

    C#开发WPF-Silverlight动画及游戏系列教程-深蓝色右手1

    C#开发WPF-Silverlight动画及游戏系列教程-深蓝色右手 C#开发WPF-Silverlight动画及游戏系列教程-深蓝色右手 C#开发WPF-Silverlight动画及游戏系列教程-深蓝色右手

    WPF-ScreenData.zip

    超酷WPF数据可视化,全套源程序,非常适合做数据可视化的程序员使用,WPF,XAML。 找了好久的资源,附有很多很详细的插图,是大数据时代不可缺少的可视化学习数据,仅供大家学习使用请勿用做商业用途。与大家一起...

    wpf-layout-sample 布局的一些示例

    在本文中,我们将深入探讨WPF(Windows Presentation Foundation)布局系统,通过`wpf-layout-sample`这个示例项目,揭示其强大的布局管理能力。WPF是.NET Framework的一部分,提供了丰富的用户界面(UI)开发工具,...

    WPF-Ribbon

    WPF-Ribbon则是专门针对WPF平台实现的Ribbon组件,它为开发者提供了在WPF应用程序中集成这种现代用户界面的能力。 1. **Ribbon布局** - Ribbon界面通常包含多个主要区域:快速访问工具栏(QAT)、主选项卡、上下文...

    Prism-Samples-Wpf-master11-15.zip

    Prism-Samples-Wpf-master11-15的VS2017版本实现,下载手动重新安装一下nuget包即可,方便大家学习

    WPF-WIFI.zip

    标题 "WPF-WIFI.zip" 暗示了这是一个与Windows Presentation Foundation (WPF) 相关的项目,特别关注于模拟手机信号和WIFI信号的显示。WPF是.NET Framework的一部分,它提供了一个用于构建桌面应用程序的强大而灵活...

    Navigation-Drawer-Sidebar-Menu-in-WPF-master.zip

    标题"Navigation-Drawer-Sidebar-Menu-in-WPF-master.zip"提示我们这是一个关于WPF应用的项目,它包含了一个可展开和收缩的左侧导航菜单。描述中的“WPF左侧展开收缩图标导航菜单”进一步确认了这一功能。通过分析...

    3D Bar chart custom control using WPF-VS2008

    总结,创建“3D Bar chart custom control using WPF-VS2008”需要掌握以下关键技术点: 1. WPF的3D图形渲染,包括`Viewport3D`,`Model3D`,`GeometryModel3D`和数据绑定。 2. C#编程,用于处理用户交互和数据操作...

    WPF经典教程之Grid、UniformGrid布局

    Grid是WPF中最基本且强大的布局容器之一,它将窗口划分为一个二维网格,每个单元格可以容纳一个或多个控件。Grid的一个显著特点是其灵活性,允许对行和列进行精确控制,包括合并单元格和自定义高度和宽度。 1. 多...

Global site tag (gtag.js) - Google Analytics