我正在显示一个带有格式化文本和图形的列表。代码可以工作,但第二个StackPanel没有在屏幕右侧显示Entity. LabelWdth对象。这就是水平方向不起作用。我不知道如何编写正确的模板(混合面板布局的代码片段)。
<ListBox ItemsSource="{Binding Entity.LowerCanvases}" MouseLeftButtonUp="LowerCanvas_MouseLeftButtonUp">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Margin="-7,10,0,0" Orientation="Vertical">
<Canvas Width="{Binding Entity.ScrWth, RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type UserControl}}}" Height="{Binding Entity.LowerDrawHght,
RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}">
<StackPanel Orientation="Horizontal">
<ContentControl Content="{Binding LowerDrawing}" />
<ContentControl Content="{Binding LowerLabel}" />
</StackPanel>
</Canvas>
<Canvas Width="{Binding Entity.ScrWth}" Height="30">
<ContentControl Content="{Binding LowerFooter}" />
</Canvas>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ListBox>
1条答案
按热度按时间qoefvg9y1#
我找到了一个解决方案。内容控件也是画布的集合,所以我必须用画布的Left和Top附加属性来定位内容控件。