or
<local:SectionLayout> <local:Section Name="Foo"> <Button Text="{Binding Foo}" /> </local:Section></local:SectionLayout><ControlTemplate><telerik:RadTabControl Align="Right" TabOrientation="Vertical" TabStripPlacement="Left" ItemsSource="{TemplateBinding Sections}"> <telerik:RadTabControl.ItemContainerStyle> <Style TargetType="{x:Type telerik:RadTabItem}"> <Setter Property="MinHeight" Value="150" /> <Setter Property="MinWidth" Value="30" /> </Style> </telerik:RadTabControl.ItemContainerStyle> <telerik:RadTabControl.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding Name}" /> </DataTemplate> </telerik:RadTabControl.ItemTemplate> <telerik:RadTabControl.ContentTemplate> <DataTemplate
DataType="{x:Type local:Section}"> <ContentPresenter Margin="4,4,4,4" DataContext="{TemplateBinding DataContext}" Content="{Binding Content}" /> </DataTemplate> </telerik:RadTabControl.ContentTemplate></telerik:RadTabControl></ControlTemplate>public Parameter{ string Name; object Value;}
private double InitDataCell(TableCell dataCell, DynamicColumnViewModel columnVm, bool isWidth100, double percent){ double cellHeight = 0; dataCell.Tag = columnVm.DynamicCellData.TableID.ToString(); if (isWidth100) { dataCell.PreferredWidth = new TableWidthUnit(TableWidthUnitType.Percent, percent); } else { dataCell.PreferredWidth = new TableWidthUnit(TableWidthUnitType.Fixed, columnVm.Width); } dataCell.TextAlignment = columnVm.Alignment; dataCell.VerticalAlignment = RadVerticalAlignment.Center; var paragraph = new Paragraph(); paragraph.TextAlignment = columnVm.Alignment; dataCell.Blocks.Add(paragraph); dataCell.Background = columnVm.DynamicCellData.Background; var tb = new TextBlock { Text = columnVm.Expression, Tag = string.Format("{0}{1}", DynamicTableCommon.DynamicTable.TABLE_TAG_ID_PREFIX, columnVm.DynamicCellData.TableID.ToString()), FontSize = columnVm.DynamicCellData.FontSize, Background = new SolidColorBrush(columnVm.DynamicCellData.Background), Foreground = new SolidColorBrush(columnVm.DynamicCellData.Foreground), FontFamily = columnVm.DynamicCellData.FontFamily, FontWeight = columnVm.DynamicCellData.FontWeight, FontStyle = columnVm.DynamicCellData.FontStyle, TextDecorations = columnVm.DynamicCellData.TextDecoration }; tb.VerticalAlignment = VerticalAlignment.Bottom; tb.HorizontalAlignment = PlaceHolderReplaceManager.ConvertRadTextAlignmentToHorAlignment(columnVm.Alignment); System.Windows.Controls.Border border = new System.Windows.Controls.Border(); border.BorderThickness = new Thickness(0); border.BorderBrush = Brushes.Transparent; border.Background = new SolidColorBrush(columnVm.DynamicCellData.Background); border.VerticalAlignment = VerticalAlignment.Center; border.HorizontalAlignment = HorizontalAlignment.Center; border.Child = tb; border.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity)); Size s = new Size(border.DesiredSize.Width + 1, tb.DesiredSize.Height - 1); var uic = new DynamicCellInlineUIContainer(border, s); paragraph.Tag = columnVm.DynamicCellData.TableID.ToString(); paragraph.Inlines.Add(uic); cellHeight = uic.Height + 10; return cellHeight; }