是否有XAML等效于CSS的网格区域?

问题描述 投票:0回答:1

WPF XAML与CSS的grid-area是否等效?即,一种创建grid-areaRowColumnRowSpan值的定义的方法,为该定义提供标识符,然后通过标识符使用这些值?

我正在想象类似的东西:

ColumnSpan
wpf xaml
1个回答
0
投票

没有类似的东西,但是有一个可以类似使用的功能。 <Grid> <Grid.RowDefinitions> <RowDefinition Height="auto" /> <RowDefinition /> <RowDefinition Height="auto" /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="auto" /> <ColumnDefinition /> </Grid.ColumnDefinitions> <Grid.AreaDefinitions> <AreaDefinition Row="0" Column="0" ColumnSpan="2" Name="Header" /> <AreaDefinition Row="1" Column="0" Name="Navigation" /> <AreaDefinition Row="1" Column="1" Name="Main" /> <AreaDefinition Row="2" Column="0" ColumnSpan="2" Name="Footer" /> </Grid.AreaDefinitions> <TextBlock Grid.Area="Header" Text="Header" /> <TextBlock Grid.Area="Navigation" Text="Navigation" /> <TextBlock Grid.Area="Main" Text="Main" /> <TextBlock Grid.Area="Footer" Text="Footer" /> </grid> 是“将一组属性值应用于多个元素的便捷方法”。如果您有许多元素都需要将相同的属性设置为相同的值,则可以定义Styles,如下所示:

Style

在您的示例代码中,这将是无用的,因为<Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition /> </Grid.ColumnDefinitions> <Grid.Resources> <Style x:Key="AStyle" TargetType="TextBlock"> <Setter Property="Grid.Row" Value="1"/> <Setter Property="Grid.Column" Value="1"/> </Style> </Grid.Resources> <TextBlock Style="{StaticResource AStyle}" Text="Header" /> </Grid> 都不共享一组完整的值-您不会保存任何冗余代码,因为它始终只使用一次。但是,由于相同的原因,TextBlock如果存在,将同样无用。

© www.soinside.com 2019 - 2024. All rights reserved.