У меня есть пользовательский элемент управления с группой кнопок, и стиль кнопок переопределяется с помощью класса Path.Теперь каждая кнопка имеет различный дизайн.
Запрос: 1. нажатие на одну кнопку изменит цвет заливки пути на 5 секунд, а затем вернется в предыдущее состояние.2. За пределами этой группы кнопок у меня есть общая кнопка, которая меняет цвет всех кнопок на 5 секунд и возвращает их в нормальное состояние.3. У меня есть еще одна общая кнопка для отмены времени смены цвета.То есть, как только я нажму кнопку отмены, таймер будет отменен.
<Style x:Key="ConfigureInstButton" TargetType="Button">
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Canvas x:Name="cnv" Width="{TemplateBinding ActualWidth}" Height="{TemplateBinding Height}">
<Grid Width="{Binding ActualWidth, ElementName=cnv}" Height="{Binding ActualHeight, ElementName=cnv}">
<Border x:Name="borderRect" Background="{TemplateBinding Background}" BorderThickness="0" BorderBrush="{StaticResource solidBrush_LightGray_0.75_darker}"
CornerRadius="2">
<Path x:Name="pathInstrumentType" Tag="{TemplateBinding Tag}" Margin="5">
<Path.Style>
<Style TargetType="Path">
<Setter Property="Stretch" Value="Uniform" />
<Setter Property="Fill" Value="{StaticResource solidBrush_LightGray_0.75_darker}" />
</Style>
</Path.Style>
</Path>
</Border>
<Button x:Name="LoadingImage" Tag="{TemplateBinding Tag}" Style="{DynamicResource Loading}" Visibility="Collapsed" Margin="0,2,0,0" />
<Border x:Name="borderConfigure" BorderThickness="1" BorderBrush="{StaticResource solidBrush_LightGray_0.75_darker}" Visibility="Collapsed" Tag="{TemplateBinding Content}"
Background="{StaticResource solidBrush_Highlight}" Opacity="0.6" Panel.ZIndex="2" CornerRadius="2">
<Path x:Name="pathConfigure" Margin="5" Height="18">
<Path.Style>
<Style TargetType="Path">
<Setter Property="Data" Value="{StaticResource geoData_ConfigureInstrument}" />
<Setter Property="Stretch" Value="Uniform" />
<Setter Property="Fill" Value="{StaticResource solidBrush_White_0.05_darker}" />
</Style>
</Path.Style>
</Path>
</Border>
</Grid>
</Canvas>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="borderConfigure" Property="Visibility" Value="Visible"/>
<Setter TargetName="borderRect" Property="Opacity" Value="0.2" />
<Setter Property="Cursor" Value="Hand" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>