8

次のように定義された非常に単純なWPFグリッド(6行x 6列)があるとします。

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

<Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>

次のグリッド線(1本の実線と2本の破線)を次のように描画します(これはExcelで描画したので、明るいExcelグリッド線は無視してください)。

ここに画像の説明を入力してください

XAMLでこれを行うにはどうすればよいですか?

4

1 に答える 1

17

、を適切に設定し、破線を取得するように設定することLineにより、必要なセルの上部にsを配置できます。VerticalAlignment="Top"Grid.ColumnSpanStrokeDashArray

編集:上記は頭から離れたところにあり、WPFのいくつかの「機能」を忘れていたようです。

これが私が作業したサンプルです。スターサイズの5行と5列のグリッドに配置しました。

<Line Grid.Row="0" Grid.Column="1" Grid.RowSpan="2" Grid.ColumnSpan="2"
    VerticalAlignment="Center" Stroke="Black" StrokeThickness="1"
    X2="{Binding Path=ActualWidth, RelativeSource={RelativeSource Self}}" />
<Line Grid.Row="1" Grid.Column="2" Grid.RowSpan="2" Grid.ColumnSpan="2"
    VerticalAlignment="Center" Stroke="Black" StrokeThickness="2" StrokeDashArray="5,3"
    X2="{Binding Path=ActualWidth, RelativeSource={RelativeSource Self}}" />

注:行のサイズが異なる場合は、行が2つの行の中央に配置されるため、機能しません。サイズが異なる場合は、必要VerticalAlignment="Top"になりますが、行の上半分がクリップされることに注意してください。

于 2012-06-28T21:00:06.380 に答える