我想在
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"/>