gpt4 book ai didi

wpf - 如何使用 RowDefinition 名称设置网格行?

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

我正在用 RowDefinitions 组织我的网格和 ColumnDefinition ,但永远当我想添加一个新的 RowDefinition在实际任何之前 RowDefinition ,我需要重新组织所有控件的Grid.Row

我看到了 RowDefinitionColumnDefinition有一个 Name属性,所以我认为可以用 RowDefinition 定义 Grid.Row姓名与否?如果可能,怎么做

<Grid>
<Grid.RowDefinitions>
<RowDefinition Name="RowDictTitle" Height="27"/>
<RowDefinition Name="RowSearchWord" Height="27"/>
<RowDefinition/>
<RowDefinition Height="50"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>

<!--Row 1-->
<TextBlock Text="Word:" VerticalAlignment="Center" Margin="10,0,0,0" Grid.Row="1"/>
<TextBox Name="Search" Grid.ColumnSpan="2" Margin="50,2,10,2"/>

<!--Row 2-->
<ListBox Name="Words" Grid.Row="2" Margin="10"/>
</Grid>

我想在下面制作
<TextBlock Text="Word" Grid.Row="RowSearchWord"/>

最佳答案

免责声明:这个答案是在 this meta post 所暗示的限制范围内的一种自我广告。 .它宣传了一个免费的开源项目,我(在撰写本文时)没有通过该项目赚钱。唯一的收获是知道我编写所描述的控件的时间并没有浪费,如果它可以帮助这个 SO 问题的一些 future 访问者。
我有完全相同的想法。这就是为什么不久前,我编写了一个使用命名列和行的自定义网格类。
我在 MIT 许可下把它放在 Codeplex 上:Name-Based Grid project
使用该控件,您可以按如下方式重写 Xaml 源代码:

<nbg:NameBasedGrid>
<nbg:NameBasedGrid.RowDefinitions>
<nbg:ColumnOrRow Name="RowDictTitle" Height="27"/>
<nbg:ColumnOrRow Name="RowSearchWord" Height="27"/>
<nbg:ColumnOrRow Name="List"/>
<nbg:ColumnOrRow Height="50"/>
</nbg:NameBasedGrid.RowDefinitions>
<nbg:NameBasedGrid.ColumnDefinitions>
<nbg:ColumnOrRow Width="1*" Name="Left"/>
<nbg:ColumnOrRow Width="2*" Name="Right"/>
</nbg:NameBasedGrid.ColumnDefinitions>

<!--Row 1-->
<TextBlock Text="Word:" VerticalAlignment="Center" Margin="10,0,0,0" nbg:NameBasedGrid.Column="Left" nbg:NameBasedGrid.Row="RowSearchWord"/>
<TextBox Name="Search" nbg:NameBasedGrid.Column="Left" nbg:NameBasedGrid.Row="RowDictTitle" nbg:NameBasedGrid.ExtendToColumn="Right" Margin="50,2,10,2"/>

<!--Row 2-->
<ListBox Name="Words" nbg:NameBasedGrid.Column="Left" nbg:NameBasedGrid.Row="List" Margin="10"/>
</nbg:NameBasedGrid>
优势:您将能够按名称引用列和行(包括列和行跨度!) - 不再计算列或行,也不再在布局更改时更新列或行跨度。
缺点:您需要明确说明所有列和行的名称,因为在 NameBasedGrid 中根本不支持数字引用。 .

关于wpf - 如何使用 RowDefinition 名称设置网格行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18543991/

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