【问题标题】:WPF control develop ideaWPF控件开发思路
【发布时间】:2012-03-31 16:42:28
【问题描述】:

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

TextBlock 需要是可编辑的。所以,问题是我需要从谁那里继承,因为不能从 Stackpanel 继承?

【问题讨论】:

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


    【解决方案1】:

    这基本上是带有自定义TemplateHeaderedItemsControl

    模板可以是具有两列的Grid,其中一列包含绑定到标题属性的旋转ContentPresenter,在右侧您将有一个用于项目的ItemsPresenter

    例如

    <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"/>
    

    【讨论】:

    • @PredragPejic:添加示例,您可能想使用TemplateBindings 连接更多属性
    猜你喜欢
    • 2011-01-19
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多