HeaderedContentControl实现左右对称

在我们使用TextBlock却想给前面添加固定字段的时候,发现TextBlock没有Header属性,
这个时候我们可以用到HeaderedContentControl
然而,默认情况下HeaderedContentControl是上下排列的,我们需要进行改动
1、添加资源字典,并使用

<Style x:Key="Header" TargetType="HeaderedContentControl">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="HeaderedContentControl">
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="30" />
                        <ColumnDefinition />
                    </Grid.ColumnDefinitions>
                    <ContentPresenter Grid.Column="0" ContentSource="Header" />
                    <ContentPresenter Grid.Column="1" ContentSource="Content" />
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

2、前后台绑定

  <HeaderedContentControl
      Content="{Binding Text}"
      Header="Id"
      Style="{StaticResource Header}" />
 private string _text="123";

 public string Text
 {
     get { return _text; }
     set { SetProperty<string>(ref _text, value); }
 }

image

posted @ 2023-09-18 18:01  孤沉  阅读(18)  评论(0编辑  收藏  举报