提问者:小点点

如何创建由两个数据模板组成的fluent模板


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

例如:

我有两个数据模板

>

  • DataTemplate1=>StackPanel中的按钮和Textblock。如:

    stackpanel << [Button] textblockwithtext >>
    

    DataTemplate2=>StackPanel中的Textblock和Combobox。如:

    stackpanel << 11111111thisisnewtextblock >> [ComboBox]
    

    在我将它们合并之后,这是第三个模板(类似于:

    stackpanel << DataTemplate1 DataTemplate 2 >>
    

    我会得到一些不流利的东西。可能都是一脉相承的,

    或者是两条线,但它会在中间断裂,比如:

    按钮文本1\n
    文本2\n组合框。

    我想要一些像这样的东西:按钮\n文本1和文本2的一半\n文本2的最后一半和组合框。(根据窗口的空间大小)。

    所以,我想找到一个工作的包装方式,当我使用两个datatemplates(包装面板不是我要找的,我正在寻找一种方法合并两个datatemplates-让它们互相包装,这样它们就不会是一个完全不同的部分)。

    我尝试使用run in Document,但几乎不可能为它们创建datatemplate。

    有什么想法吗?

    多谢了。


  • 共1个答案

    匿名用户

    够近了?

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