Получить имя заголовка - PullRequest
       0

Получить имя заголовка

0 голосов
/ 19 февраля 2020

Здравствуйте. Я немного растерялся с шаблонами элементов управления, у меня есть расширитель и несколько стилей элементов управления, которые применяются к Expander. Итак, идея заключается в том, чтобы позволить пользователю вставить заголовок

<Expander Name="MyExpanderExpander"  Style="{StaticResource MyExpanderNewGeneration}" Header="UserChoice" OverridesDefaultStyle="True" VerticalAlignment="Top" Margin="0,0,0,0" Height="210">

Так что теперь Style: MyExpanderNewGeneration должен получить заголовок Name: UserChoic ToggleButton должен получить имя заголовка: UserChoice, и вот моя проблема .. но как это сделать?

мой стиль применения

    <Style TargetType="Expander" x:Key="MyExpanderNewGeneration" BasedOn="{StaticResource BaseControlStyle}" >
            <!--x:Key="GroupBoxStyle"-->
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="Expander">
                        <Grid>
                            <!--Grid Rows split the GroupBox into two areas -->
                            <Grid.RowDefinitions>
                                <RowDefinition Height="30"/>
                                <RowDefinition Height="*"/>
                            </Grid.RowDefinitions>
                            <!--Header area-->
                            <Border Name="HeaderArea"
      Grid.Row="0"
      Background="Transparent"

      BorderBrush="Transparent"
      BorderThickness="1"
      CornerRadius="2,2,0,0" >
                                <ToggleButton x:Name="ExpanderButton" 

                           Grid.Row="0"
                          Grid.Column="0"
                          Margin="0,0,0,0"  
                          VerticalAlignment="Top"                                                                
                          Template="{StaticResource TestToggleButton}"
                          Content="{TemplateBinding Header}"
                          IsChecked="{Binding Path=IsExpanded, RelativeSource={RelativeSource TemplatedParent}}"
                          OverridesDefaultStyle="True">
                                </ToggleButton>

Здесь я хочу получить имя UserChoice.

 <ControlTemplate x:Key="TestToggleButton" TargetType="{x:Type ToggleButton}">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="300"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Label Foreground="White" Width="300" Grid.Column="0" FontSize="15" 
                    HorizontalAlignment="Left" FontWeight="Normal" Something={HEADER???}

Как это решить?

1 Ответ

0 голосов
/ 19 февраля 2020

Поскольку вы устанавливаете Content="{TemplateBinding Header}" в своем ExpanderButton, вам необходимо привязать свойство Content в шаблоне управления стиля TestToggleButton:

<ControlTemplate x:Key="TestToggleButton" TargetType="{x:Type ToggleButton}">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="300"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <Label 
            ...
            Content={TemplateBinding Content} />
        ...
    </Grid>
</ControlTemplate>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...