c# – 如何在WPF中为分隔符添加标题?

前端之家收集整理的这篇文章主要介绍了c# – 如何在WPF中为分隔符添加标题?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在 WPF分隔符中添加一个标题(这样它看起来像是GroupBox的顶行).这样做的目的是将视图分成不同的部分,我不能使用GroupBox,因为我们的业务准则说我们必须使用分隔符……有人知道如何做到这一点吗?

编辑:

我知道可以通过使用其他控件(即边框和文本框)来实现此解决方案,但我想知道是否可以将Header属性添加到Separator对象.

解决方法

您可以编写自己的自定义控件
public class HeaderedSeparator : Control
{
    public static DependencyProperty HeaderProperty =
        DependencyProperty.Register(
        "Header",typeof(string),typeof(HeaderedSeparator));

    public string Header
    {
        get { return (string)GetValue(HeaderProperty); }
        set { SetValue(HeaderProperty,value); }
    }
}

和风格:

<Style TargetType="{x:Type local:HeaderedSeparator}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type local:HeaderedSeparator}">
                <Grid Height="{TemplateBinding Height}">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="15"/>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition />
                    </Grid.ColumnDefinitions>
                    <Separator Grid.Column="0"/>
                    <TextBlock Grid.Column="1" 
                        VerticalAlignment="Center" Margin="5 0" 
                        Text="{TemplateBinding Header}"/>
                    <Separator Grid.Column="2" />
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

然后使用它:

<local:HeaderedSeparator Header="Header1"/>
<local:HeaderedSeparator Header="Header2"/>

猜你在找的C#相关文章