Не могу установить триггеры на кнопку переключения - PullRequest
2 голосов
/ 29 мая 2019

Я не могу прикрепить триггеры к кнопке переключения

  1. В первой версии я получаю сообщение об ошибке, что стиль уже переопределен

  2. Во второй версии с триггерами я получаю ошибку, что свойство Команда - элемент «Команда» не распознан или недоступен.

Это кнопка

<ToggleButton
               Name="ToggleButton_Record"
               IsChecked="False"
               Style="{StaticResource MaterialDesignActionToggleButton}"
               ToolTip="Записать">

               <materialDesign:PackIcon
                    HorizontalAlignment="Center"
                    VerticalAlignment="Center"
                    Foreground="OrangeRed"
                    Kind="Record" />

</ToggleButton>

Это 1-й вариант

 <ToggleButton.Style>
                   <Style TargetType="{x:Type ToggleButton}">
                       <Style.Triggers>
                            <Trigger Property="ToggleButton.IsChecked" Value="True">
                                 <Setter Property="Command" Value="{Binding StartRecordCommand}" />
                            </Trigger>
                            <Trigger Property="ToggleButton.IsChecked" Value="False">
                                  <Setter Property="Command" Value="{Binding StopRecordCommand}" />
                            </Trigger>
                        </Style.Triggers>
                   </Style>
 </ToggleButton.Style>

2-й вариант с триггерами

 <ToggleButton.Triggers>
           <Trigger Property="ToggleButton.IsChecked" Value="True">
                <Setter Property="Command" Value="{Binding StartRecordCommand}" />
           </Trigger>
           <Trigger Property="ToggleButton.IsChecked" Value="False">
                <Setter Property="Command" Value="{Binding StopRecordCommand}" />
           </Trigger>
</ToggleButton.Triggers>

Да, я знаю, что в 1-м варианте я просто удаляю стиль в кнопке и запускаю ее, но мне нужен этот стиль.

1 Ответ

1 голос
/ 31 мая 2019

Используйте 1-й вариант. Удалить стиль = "{..}" .а затем в определенном вами стиле добавьте BasedOn.

<ToggleButton
               Name="ToggleButton_Record"
               IsChecked="False"
               ToolTip="Записать">

              <ToggleButton.Style>
                   <Style TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource MaterialDesignActionToggleButton}">
                       <Style.Triggers>
                            <Trigger Property="ToggleButton.IsChecked" Value="True">
                                 <Setter Property="Command" Value="{Binding StartRecordCommand}" />
                            </Trigger>
                            <Trigger Property="ToggleButton.IsChecked" Value="False">
                                  <Setter Property="Command" Value="{Binding StopRecordCommand}" />
                            </Trigger>
                        </Style.Triggers>
                   </Style>
              </ToggleButton.Style>


               <materialDesign:PackIcon
                    HorizontalAlignment="Center"
                    VerticalAlignment="Center"
                    Foreground="OrangeRed"
                    Kind="Record" />

</ToggleButton>
...