gpt4 book ai didi

跨用户控件的 WPF 网格?

转载 作者:行者123 更新时间:2023-12-01 09:39:59 27 4
gpt4 key购买 nike

在 ASP.NET 中,我可以让用户控件在页面上的表格中占据多个单元格:

用户控件1:

<tr>
<td>foo</td>
<td>bar</td>
</tr>

第1页:

<table>
<put a UserControl1 here/>
<put another UserControl1 here/>
</table>

并且自动调整列宽以适应最大的用户控件。

这也可以在 WPF 中完成吗?怎么样?

我认为用户控件不能做到这一点,我必须创建一个简单的类而不是用户控件,它具有将所有内容添加到网格的方法。但是那样一切都应该通过代码来完成,xaml在这里就没用了。

最佳答案

我找到了答案 here .

可以使用 SharedSizeGroup 和 Grid.IsSharedSizeScope 来完成。

UserControl1.xaml:

<UserControl x:Class="WpfApplication1.UserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="SharedSizeGroup1"/>
<ColumnDefinition SharedSizeGroup="SharedSizeGroup2"/>
</Grid.ColumnDefinitions>
<Label Name="Label1" Grid.Column="0">Label1</Label>
<Label Name="Label2" Grid.Column="1">Label2</Label>
</Grid>
</UserControl>

Window1.xaml:

<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:y="clr-namespace:WpfApplication1">
<Grid Grid.IsSharedSizeScope="True">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<y:UserControl1 Grid.Row="0" x:Name="UserControl1A"/>
<y:UserControl1 Grid.Row="1" x:Name="UserControl1B"/>
</Grid>
</Window>

Window1.xaml.cs:

using System.Windows;

namespace WpfApplication1
{
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
UserControl1A.Label1.Content = "Label1WithLongText";
}
}
}

关于跨用户控件的 WPF 网格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/946643/

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