WPF控制开发理念

时间:2012-03-31 16:42:29

标签: c# wpf xaml user-controls wpf-controls

好的,我想在左侧创建一个类似Stackpanel TextBlock的控件,如:

Picture

TextBlock需要可编辑。所以,问题是我需要继承谁来制作,因为不能来自Stackpanel

1 个答案:

答案 0 :(得分:5)

这基本上是HeaderedItemsControl,其中包含自定义Template

模板可以是Grid,其中包含两个列,一个包含已绑定到标题属性的已旋转ContentPresenter,右侧有一个ItemsPresenter项。

e.g。

<Style TargetType="HeaderedItemsControl"> <!-- Implicitly applied -->
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="HeaderedItemsControl">
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition />
                    </Grid.ColumnDefinitions>
                    <ContentPresenter ContentSource="Header">
                        <ContentPresenter.LayoutTransform>
                            <RotateTransform Angle="-90"/>
                        </ContentPresenter.LayoutTransform>
                    </ContentPresenter>
                    <ItemsPresenter Grid.Column="1"/>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
<HeaderedItemsControl Header="Lorem Ipsum" ItemsSource="ABCDEF"/>