gpt4 book ai didi

xaml - 在样式中设置 Grid RowDefinitions/ColumnDefinitions 属性

转载 作者:行者123 更新时间:2023-12-04 04:54:40 24 4
gpt4 key购买 nike

假设您有 2 个或更多共享相同结构的网格(行/列计数和属性相等)。

是否可以创建一个 款式 并设置 行定义 /列定义 ?

我试过了。但是当应用程序尝试解析 xaml 时,我收到此异常:

Xamarin.Forms.Xaml.XamlParseException: Position 14:9. Property Value is null or is not IEnumerable



我的源代码:
<StackLayout>
<StackLayout.Resources>
<ResourceDictionary>
<Style TargetType="Grid">
<Setter Property="RowDefinitions">
<Setter.Value>
<RowDefinition />
<RowDefinition />
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
</StackLayout.Resources>

<Grid>
<Label Grid.Row="0" Text="(Grid #1) Row #1" />
<Label Grid.Row="1" Text="(Grid #1) Row #2" />
</Grid>

<Grid>
<Label Grid.Row="0" Text="(Grid #2) Row #1" />
<Label Grid.Row="1" Text="(Grid #2) Row #2" />
</Grid>

<Grid>
<Label Grid.Row="0" Text="(Grid #3) Row #1" />
<Label Grid.Row="1" Text="(Grid #3) Row #2" />
</Grid>
</StackLayout>

位置 14:9 在异常中指的是第一个 <RowDefinition />标签。

最佳答案

您不能定义 RowDefinitionColumnDefinition在样式中,但您可以将它们创建为可重用资源。我想这就是你要找的。定义 ColumnDefinitionCollection和一个 RowDefinitionCollection像这样允许您将它们与许多网格重用以创建一致的外观。

<ResourceDictionary>
<ColumnDefinitionCollection
x:Key="MyColumnDefinitionCollection">
<ColumnDefinition
Width="50" />
<ColumnDefinition
Width="100" />
<ColumnDefinition
Width="150" />
</ColumnDefinitionCollection>
<RowDefinitionCollection
x:Key="MyRowDefinitionCollection">
<RowDefinition
Height="50" />
<RowDefinition
Height="50" />
<RowDefinition
Height="100" />
<RowDefinition
Height="100" />
</RowDefinitionCollection>
</ResourceDictionary>
<Grid 
ColumnDefinitions="{StaticResource MyColumnDefinitionCollection}"
RowDefinitions="{StaticResource MyRowDefinitionCollection}">
</Grid>

关于xaml - 在样式中设置 Grid RowDefinitions/ColumnDefinitions 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45680749/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com