wpf - WPF网格线-变化的风格

标签 wpf grid gridlines

有什么办法可以改变WPF网格中网格线的样式吗?
我需要将网格划分为4个单元格。为此,我使用了RowDefinitions和ColumnDefinitions。但是,我需要用户区分哪个单元格,这就是为什么我需要更改网格线的颜色的原因。

最佳答案

这取决于您要寻找的外观。在WPF中,有几乎所有方法都可以使用不同的方法。这里有一些简单的方法。

最简单的方法是设置ShowGridlines =“True”:

    <Grid HorizontalAlignment="Stretch" 
          VerticalAlignment="Stretch" 
          Margin="5"
          ShowGridLines="True">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>

        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>

        <TextBlock Grid.Column="0" 
                   Grid.Row="0"
                   Text="(0,0)" />
        <TextBlock Grid.Column="1" 
                   Grid.Row="0"
                   Text="(1,0)" />
        <TextBlock Grid.Column="0" 
                   Grid.Row="1"
                   Text="(0,1)" />
        <TextBlock Grid.Column="1" 
                   Grid.Row="1"
                   Text="(1,0)" />
    </Grid>

这使您的网格类似于:

您还可以在网格的每个单元格中使用“矩形”以获得不同的效果。在这里,填充是透明的,描边是蓝色的:
<Grid HorizontalAlignment="Stretch" 
      VerticalAlignment="Stretch" 
      Margin="5">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>

    <Grid.RowDefinitions>
        <RowDefinition Height="*" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>

    <Rectangle Grid.Column="0"
               Grid.Row="0"  
               Stroke="Blue"
               Fill="Transparent" />
    <TextBlock Grid.Column="0" 
               Grid.Row="0"
               Text="(0,0)" />
    <Rectangle Grid.Column="1"
               Grid.Row="0"  
               Stroke="Blue"
               Fill="Transparent" />
    <TextBlock Grid.Column="1" 
               Grid.Row="0"
               Text="(1,0)" />
    <Rectangle Grid.Column="0"
               Grid.Row="1"  
               Stroke="Blue"
               Fill="Transparent" />
    <TextBlock Grid.Column="0" 
               Grid.Row="1"
               Text="(0,1)" />
    <Rectangle Grid.Column="1"
               Grid.Row="1"  
               Stroke="Blue"
               Fill="Transparent" />
    <TextBlock Grid.Column="1" 
               Grid.Row="1"
               Text="(1,0)" />
</Grid>

这产生了:

或者,您可以填充矩形而不是给它们一个笔触:
    <Grid HorizontalAlignment="Stretch" 
          VerticalAlignment="Stretch" 
          Margin="5">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>

        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>

        <Rectangle Grid.Column="0"
                   Grid.Row="0"  
                   Fill="LightBlue" />
        <TextBlock Grid.Column="0" 
                   Grid.Row="0"
                   Text="(0,0)" />
        <Rectangle Grid.Column="1"
                   Grid.Row="0"  
                   Fill="LightYellow" />
        <TextBlock Grid.Column="1" 
                   Grid.Row="0"
                   Text="(1,0)" />
        <Rectangle Grid.Column="0"
                   Grid.Row="1"  
                   Fill="LightYellow" />
        <TextBlock Grid.Column="0" 
                   Grid.Row="1"
                   Text="(0,1)" />
        <Rectangle Grid.Column="1"
                   Grid.Row="1"  
                   Fill="LightBlue" />
        <TextBlock Grid.Column="1" 
                   Grid.Row="1"
                   Text="(1,0)" />
    </Grid>

例如,这可以给出一个棋盘模式:

这绝不是一个全面的答案-您可能可以写一本书。它只是为了表明您有多种方法来满足您的要求,并且如果您需要的话,可以找到一些非常快捷的解决方案。

关于wpf - WPF网格线-变化的风格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3789256/

相关文章:

matlab - map 的主要和次要标线?

python - Matplotlib:改变个别网格线的颜色

c# - 如何通过 ViewModel 转到 DataGrid 中的特定行号

c# - 如何选择此 XML 节点并提取其属性

c# - WPF Richtextbox FontFace/FontSize

css - 将最小宽度设置为容器的正确方法是什么?

wpf - 您可以使用 LiveCharts 显示带有 x 和 y 值对的线系列吗?

filter - 过滤后如何在 kendo ui 网格上显示水平滚动条?

html - 网格中特定行的反向

reporting-services - 隐藏矩阵网格线 SQL Server Reporting Services 2005