我想显示固定宽度的文本块和文本框流入的组合。记住它是多行文字。我应该使用哪个容器控件来实现这一点。我尝试使用具有固定宽度的StackPanel,但它不起作用。
例如:
一些文字bla bla #Text box#again有些文字bla bla #txtbx#再一些文本#Textbox #text some 文本bla再一些文本#textbox #text some text bla
答案 0 :(得分:1)
您可以使用TextElement
来执行此操作,如
<TextBlock TextWrapping="Wrap">
<Run Text="I comma " />
<TextBox Width="100" Text="recruit's name" />
<Run Text="comma do solemnly swear by " />
<TextBox Width="150" Text="recruit's deity of choice"/>
<Run Text=" to uphold the Laws and Ordinances of the City of Ankh-Morpork" />
</TextBlock>
您可能需要调整TextBoxes边距以使其与其他文本一致。
答案 1 :(得分:1)
您可以使用FlowDocument,即:
<FlowDocumentReader xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<FlowDocument>
<Paragraph>
<Bold>Some bold text in the paragraph.</Bold>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus eu ipsum vitae sem elementum mollis tempor et neque.
</Paragraph>
<Paragraph>
<TextBox Text="I'm a textbox"></TextBox>
<Button Content="Click Me"></Button>
</Paragraph>
<List>
<ListItem>
<Paragraph>ListItem 1</Paragraph>
</ListItem>
<ListItem>
<Paragraph>ListItem 2</Paragraph>
</ListItem>
<ListItem>
<Paragraph>ListItem 3</Paragraph>
</ListItem>
</List>
</FlowDocument>
</FlowDocumentReader>
获得这个:
答案 2 :(得分:0)
你试过WrapPanel
吗?我认为这是做你想做的最好的容器。您可以像StackPanel
一样使用它,并根据其大小和项目大小,WrapPanel
组织项目以感知空间水平和垂直。
希望这有帮助
答案 3 :(得分:0)
我建议您将ItemsControls与ItemsContainer一起用作WrapPanel
使用ViewModel中的Collection绑定ItemsControl,然后在View中设计DataTemplate
答案 4 :(得分:0)
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0"/>
<TextBox Grid.Column="1"/>
<TextBlock Grid.Column="2"/>
<TextBox Grid.Column="3"/>
<Grid/>
或者
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0"/>
<TextBox Grid.Row="1"/>
<TextBlock Grid.Row="2"/>
<TextBox Grid.Row="3"/>
<Grid/>
或您需要的任何组合
如果您需要TextBox的TextBlocks的任何特殊内容,您可以像这样设置宽度
<ColumnDefinition Width="50"/>