Создание заголовка группового блока уникальным для каждого экземпляра - PullRequest
0 голосов
/ 10 октября 2018

Я создал каталог ресурсов Groupbox и создал стиль, который влияет на групповую коробку.

Вот мой Resource Directory код:

<Style x:Key="grpNumbers" TargetType="GroupBox">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="GroupBox">
                <Border
                    BorderThickness="1"
                    BorderBrush="#25A0DA" CornerRadius="10">
                    <Label HorizontalAlignment="Left" Content="Carrier" Foreground="White" Background="#151515" Height="38" 
                          Margin="30,-195,0,0"/>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

Проблема в том, что я хочу, чтобы стиль группового блока не был связан сContent в Label.

В настоящее время он создается в mainwindow следующим образом:

<GroupBox Style="{StaticResource ResourceKey=grpNumbers}" Grid.Column="1"  BorderBrush="#272727" Grid.Row="1" Height="200" Margin="20"  HorizontalAlignment="Stretch" Header="Carrier information" Foreground="White" FontSize="20" BorderThickness="0.2">
</GroupBox>

Но, очевидно, тег Header вышеупомянутых групповых блоков не переопределяет заголовокмоей группы, но она мне тоже нужна, можно ли это сделать?

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Вы должны изменить свой стиль, чтобы он выглядел так:

<Style x:Key="grpNumbers" TargetType="{x:Type GroupBox}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type GroupBox}">
                <Grid>
                    <Border BorderThickness="1"
                            BorderBrush="#25A0DA" 
                            CornerRadius="10">
                        <Label HorizontalAlignment="Left" 
                               Content="{TemplateBinding Header}"
                               Foreground="White" 
                               Background="#151515" 
                               Height="38" 
                               Margin="30,-195,0,0"/>
                    </Border>
                    <!-- Responsible for displaying what you put inside of your GroupBox -->
                    <ContentPresenter Margin="5,25,5,5" />                        
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

, который затем можно использовать так:

<GroupBox Style="{StaticResource grpNumbers}" 
          Grid.Column="1"
          BorderBrush="#272727" 
          Grid.Row="1" 
          Height="200" 
          Margin="20"  
          HorizontalAlignment="Stretch" 
          Header="Carrier information" 
          Foreground="White" 
          FontSize="20" 
          BorderThickness="0.2">
    <TextBox /> <!-- or whatever you want inside your GroupBox -->
</GroupBox>
0 голосов
/ 10 октября 2018

Метка внутри ContentTemplate может использовать TemplateBinding для привязки заголовка:

<Label Content="{TemplateBinding Header}"/>
...