Как включить ToggleButtons, вложенных в TreeView?

Я настроил TreeView так, чтобы он всегда расширялся, поддерживал границы и убирал и разворачивал стрелку. В моем TreeView есть кнопка Toggle, но она не может быть нажата. Мне интересно, почему это так. Есть ли способ сделать это включенным?

        <Style x:Key="{x:Type TreeViewItem}" TargetType="{x:Type TreeViewItem}">
        <Setter Property="Background" Value="Transparent"/>
        <Setter Property="IsExpanded" Value="True"/>
        <Setter Property="HorizontalContentAlignment" Value="{Binding HorizontalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
        <Setter Property="VerticalContentAlignment" Value="{Binding VerticalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
        <Setter Property="Padding" Value="1,0,0,0"/>
        <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
        <Setter Property="FocusVisualStyle" Value="{StaticResource TreeViewItemFocusVisual}"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type TreeViewItem}">
                    <Grid Margin="0, 0, 50, 40" ShowGridLines="True">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="50"/>
                            <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="*"/>
                        </Grid.RowDefinitions>
                        <CheckBox HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Row="1"/>
                        <Border BorderBrush="{Binding GroupColor}" BorderThickness="1" Grid.Column="1">
                            <Grid Grid.Column="1" ShowGridLines="True">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="*"/>
                                </Grid.ColumnDefinitions>
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="50"/>
                                    <RowDefinition/>
                                </Grid.RowDefinitions>
                                <Grid ShowGridLines="True">
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="*"/>
                                        <ColumnDefinition Width="50"/>
                                    </Grid.ColumnDefinitions>
                                    <ToggleButton Style="{StaticResource ToggleViewSwitch}" 
                                                  HorizontalAlignment="Center" 
                                                  Visibility="{Binding AreControlsVisible, Converter={StaticResource BooleanConverter}, UpdateSourceTrigger=PropertyChanged}"
                                                  Grid.Column="1"/>
                                </Grid>
                                <Border Name="Bd" Grid.Column="1" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}">
                                    <ContentPresenter x:Name="PART_Header" ContentSource="Header" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"/>
                                </Border>
                                <ItemsPresenter x:Name="ItemsHost" Grid.ColumnSpan="2" Grid.Column="1" Grid.Row="1"/>
                            </Grid>
                        </Border>
                    </Grid>
                    <ControlTemplate.Triggers>
                        <MultiTrigger>
                            <MultiTrigger.Conditions>
                                <Condition Property="HasHeader" Value="false"/>
                                <Condition Property="Width" Value="Auto"/>
                            </MultiTrigger.Conditions>
                            <Setter TargetName="PART_Header" Property="MinWidth" Value="75"/>
                        </MultiTrigger>
                        <MultiTrigger>
                            <MultiTrigger.Conditions>
                                <Condition Property="HasHeader" Value="false"/>
                                <Condition Property="Height" Value="Auto"/>
                            </MultiTrigger.Conditions>
                            <Setter TargetName="PART_Header" Property="MinHeight" Value="19"/>
                        </MultiTrigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
        <Style.Triggers>
            <Trigger Property="VirtualizingStackPanel.IsVirtualizing" Value="true">
                <Setter Property="ItemsPanel">
                    <Setter.Value>
                        <ItemsPanelTemplate>
                            <VirtualizingStackPanel/>
                        </ItemsPanelTemplate>
                    </Setter.Value>
                </Setter>
            </Trigger>

Кнопка Toggle здесь, для дальнейшего использования:

<ToggleButton Style="{StaticResource ToggleViewSwitch}" 
                                              HorizontalAlignment="Center" 
                                              Visibility="{Binding AreControlsVisible, Converter={StaticResource BooleanConverter}, UpdateSourceTrigger=PropertyChanged}"
                                              Grid.Column="1"/>

Итак, элемент управления теперь не позволяет мне нажимать кнопку Toggle Button, но я бы хотел, чтобы он был кликабельным.

0 ответов

Другие вопросы по тегам