我正在尝试创建一个由其他数据模板构建的流畅页面。
例如:
我有两个DataTemplates
。
DataTemplate1
=> StackPanel中的按钮和文本块。像:
stackpanel << [Button] textblockwithtext >>
DataTemplate2
=&gt; StackPanel中的Textblock和Combobox。像:
stackpanel << 11111111thisisnewtextblock >> [ComboBox]
在我将它们合并之后,像这是第三个模板(类似这样:
stackpanel << DataTemplate1 DataTemplate 2 >>
我会得到一些不流利的东西。它可能都在同一行,
或两行,但它会在中间打破,如:
按钮text1 \ n
text2 \ n
COMBOX
我想要这样的事情: 按钮\ n text1和text2的一半\ n text2和组合框的后半部分。(根据窗口的空间量)。
所以,当我使用几个datatemplates时,我想找到一种有效的包装方式(Wrapping面板不是我想要的。我正在寻找一种方法来合并几个datatemplates - 让它们包装每个另外,他们不会是一个完全不同的部分。)
我曾尝试使用Document in run,但几乎不可能为它们创建datatemplate。
有什么想法吗?
感谢。
答案 0 :(得分:0)
足够接近?
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Button Grid.ColSpan="2" />
<TextBlock Grid.Row="1" Grid.ColSpan="2">
<Run Text="{Binding Text1}" />
<Run Text="{Binding Text2 , Converter={StaticResource StringToSubStringConverter,ConverterParameter=0}}" />
</TextBlock>
<Text Text="{Binding Text2 , Converter={StaticResource StringToSubStringConverter,ConverterParameter=1}}" Grid.Row="2"
<ComboBox Grid.Column="1" Grid.Row="2" />
</Grid>
</DataTemplate>
转换器参数的1和0表示下半部分和上半部分。