首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

WPF Grid 僅顯示水平網格線的實作方法

     編輯:程式設計綜合問答

預設行為

Grid.ShowGridLines="True" 會同時顯示水平與垂直虛線,無法單獨控制。

解決方案:使用 Border 模擬水平線

在每個 RowDefinition 底部放置一個高度為 1、筆刷為所需顏色的 Border,跨越所有欄位(Grid.ColumnSpan)。

完整 XAML 範例

<Grid xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
      ShowGridLines="False">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>

    <!-- 第 0 列內容 -->
    <TextBlock Grid.Row="0" Grid.Column="0" Text="Row 0 Col 0"/>
    <TextBlock Grid.Row="0" Grid.Column="1" Text="Row 0 Col 1"/>

    <!-- 水平分隔線 -->
    <Border Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"
            BorderThickness="0,0,0,1" BorderBrush="Gray" VerticalAlignment="Bottom"/>

    <TextBlock Grid.Row="1" Grid.Column="0" Text="Row 1 Col 0"/>
    <TextBlock Grid.Row="1" Grid.Column="1" Text="Row 1 Col 1"/>

    <Border Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2"
            BorderThickness="0,0,0,1" BorderBrush="Gray" VerticalAlignment="Bottom"/>

    <TextBlock Grid.Row="2" Grid.Column="0" Text="Row 2 Col 0"/>
    <TextBlock Grid.Row="2" Grid.Column="1" Text="Row 2 Col 1"/>
</Grid>

優化建議

  • 將分隔線封裝為可複用的 UserControl 或附加屬性(Attached Property),避免重複 XAML。
  • 若需動態行數,可在程式碼後置(Code-behind)遍歷 Grid.RowDefinitions 動態新增 Border。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved