我有以下XAML:
<StackPanel>
<StackPanel Orientation="Horizontal">
<Border Name="B1" Width="Auto">
<DataGrid />
</Border>
<Border Name="B2" Width="Auto">
<DataGrid />
</Border>
</StackPanel>
<Border Name="B3" Width="Auto">
<TextBlock TextWrapping="Wrap"
Text="{Binding}"/>
</Border>
</StackPanel>
基本上,边界B1和B2并排在顶部,B3在它们之下。 B1和B2根据其内容中的内容动态地改变它们的宽度。我希望B3的宽度是B1和B2宽度的总和,并在TextBlock中包含潜在的长文本。
上面的XAML导致TextBlock中的文本不会换行,这导致B3比B1 + B2宽得多。
我希望B3.width继承主StackPanel的宽度,该宽度将由B1.width + B2.width设置,如果可能,我希望在没有代码的情况下继续。
有什么想法吗?
答案 0 :(得分:4)
<StackPanel x:Name="stk">
<StackPanel Orientation="Horizontal" x:Name="stk1" HorizontalAlignment="Left" >
<Border Name="B1"
Width="Auto">
<ListBox Width="200" Height="200"></ListBox>
</Border >
<Border Name="B2"
Width="Auto">
<ListBox Width="200"></ListBox>
</Border>
</StackPanel>
<Border Name="B3"
Width="{Binding Path=ActualWidth,ElementName=stk1}" HorizontalAlignment="Left">
<TextBlock TextWrapping="NoWrap"
Text="testddddddddddddddddddddddddddddddddddd" />
</Border>
</StackPanel>