0

我正在尝试创建一个由其他数据模板构建的流畅页面。

例如:

我有两个DataTemplates

  • DataTemplate1=> StackPanel 中的按钮和文本块。喜欢:

    stackpanel << [Button] textblockwithtext >>
    
  • DataTemplate2=> StackPanel 中的文本块和组合框。喜欢:

    stackpanel << 11111111thisisnewtextblock >> [ComboBox]
    

在我将它们合并之后,就像这是第三个模板(像这样:

stackpanel << DataTemplate1 DataTemplate 2 >>

我会得到一些不流利的东西。可能都在同一行,

或在两行中,但它会在中间中断,例如:

按钮 text1 \n
text2 \n 组合框。

我想要这样的东西: 按钮 \n text1 和 text2 的一半 \n text2 的后半部分和组合框。(根据窗口的空间大小)。

所以,当我使用几个数据模板时,我想找到一种有效的包装方式(包装面板不是我想要的。我正在寻找一种方法来合并几个数据模板 - 让它们相互包装,即它们不会是完全不同的部分)。

我曾尝试使用在 Document 中运行,但几乎不可能为它们创建数据模板。

有任何想法吗?

谢谢。

4

1 回答 1

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 表示下半部分和上半部分。

于 2013-09-03T19:37:09.613 回答