Как использовать BasedOn для дизайна материалов в WPF? - PullRequest
0 голосов
/ 09 мая 2019

У меня есть этот код в моем XAML

<Button Click="BtnSync_Click" Grid.Column="0" Style="{StaticResource MaterialDesignFloatingActionLightButton}" Margin="8,21,10,75" Command="{Binding SaveCommand}" materialDesign:ButtonProgressAssist.IsIndicatorVisible="{Binding IsSaving}"
                            materialDesign:ButtonProgressAssist.Value="{Binding SaveProgress}" Background="Transparent" Height="Auto" Width="Auto" BorderBrush="{x:Null}">

      <materialDesign:PackIcon  Height="24" Width="24" Foreground="LightBlue">
             <materialDesign:PackIcon.Style>
                <Style TargetType="materialDesign:PackIcon" BasedOn="{StaticResource {x:Type materialDesign:PackIcon}}" >
                  <Setter  Property="Kind" Value="CloudSync" />
                     <Style.Triggers>
                        <DataTrigger Binding="{Binding IsSaveComplete}" Value="True">
                             <Setter Property="Kind" Value="Check" />
                                <DataTrigger.EnterActions>
                                     <BeginStoryboard>
                                          <Storyboard>
                                             <DoubleAnimation Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:0.8" />
                                            </Storyboard>
                                         </BeginStoryboard>
                                     </DataTrigger.EnterActions>
                            </DataTrigger>
                         </Style.Triggers>
                 </Style>
          </materialDesign:PackIcon.Style>
     </materialDesign:PackIcon>
 </Button>

Но я получаю сообщение об ошибке в этой строке

BasedOn="{StaticResource {x:Type materialDesign:PackIcon}}"

он говорит что-то вроде {x:Type materialDesign:PackIcon Extension} could not be resolved

Чтоя должен делать ?Я искал в интернете решение, но, похоже, решение пока не найдено.

1 Ответ

0 голосов
/ 09 мая 2019

Раскадровка не связана с базовым контролем.

Это ваш код без базового управления:

<ToggleButton Name="IsSaveComplete"
                      Margin="0, 32"/>

<Button Style="{StaticResource MaterialDesignFloatingActionLightButton}" 
        Margin="8,21,10,75" 
        Command="{Binding SaveCommand}" 
        materialDesign:ButtonProgressAssist.IsIndicatorVisible="{Binding IsSaving}"
        materialDesign:ButtonProgressAssist.Value="{Binding SaveProgress}" 
        Background="Transparent" 
        Height="Auto" 
        Width="Auto" 
        BorderBrush="{x:Null}"
        Click="BtnSync_OnClick">

    <materialDesign:PackIcon  Height="24"
                              Width="24"
                              Foreground="LightBlue">
        <materialDesign:PackIcon.Style>
            <Style TargetType="materialDesign:PackIcon" >
                <Setter Property="Kind" Value="CloudSync" />
                <Style.Triggers>
                    <DataTrigger Binding="{Binding ElementName=IsSaveComplete, Path=IsChecked}"
                                 Value="True">
                        <Setter Property="Kind"
                                Value="Check" />
                        <DataTrigger.EnterActions>
                            <BeginStoryboard>
                                <Storyboard>
                                    <DoubleAnimation Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:0.8" />
                                </Storyboard>
                            </BeginStoryboard>
                        </DataTrigger.EnterActions>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </materialDesign:PackIcon.Style>
    </materialDesign:PackIcon>
</Button>

Вывод:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...