Предположим, что существует Control
со значением по умолчанию Style
, которое я могу использовать только на основе или переопределить.В этом Style
есть ControlTemplate
, который имеет еще Control
и устанавливает Value
из DependencyProperty
напрямую.
Примерно так:
<Style TargetType="{x:Type ParentControl}" x:Key="Test">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ParentControl}">
<ChildControl Property="Value" ... />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Теперь я хочу изменить Value
из Property
в ChildControl
без доступа / изменения значения по умолчанию Style
.
Если я не ошибаюсь, Foreground
из ChildControl
нельзя переопределить простым Style-Setter
из-за значения Precedence .
<!-- Doesen't Work -->
<Style TargetType="{x:type ChildControl}">
<Setter Property="Property" Value="Value"/>
</Style>
Но в соответствии с тем же источником, можно было бы переопределить его Animation
(если анимация длится вечно).
Прямо здесь, я застрял.Точнее: я не могу переопределить IsDirectionReversed
Property
вертикали ScrollBar
- Track
в ScrollViewer
.
<ScrollViewer Height="300" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ScrollViewer.Resources>
<Style TargetType="{x:Type Track}">
<Style.Triggers>
<Trigger Property="IsVisible" Value="True">
<Trigger.EnterActions>
<BeginStoryboard x:Name="SetValue">
<Storyboard Storyboard.TargetProperty="(Track.IsDirectionReversed)">
<BooleanAnimationUsingKeyFrames RepeatBehavior="Forever" Duration="24:00:00">
<DiscreteBooleanKeyFrame Value="False" KeyTime="00:00:00"/>
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
<StopStoryboard BeginStoryboardName="SetValue"/>
</Trigger.ExitActions>
</Trigger>
</Style.Triggers>
</Style>
</ScrollViewer.Resources>
<Rectangle Height="800"/>
</ScrollViewer>
Что-то не так с Trigger
/ Animation
?Или поведение Track
- Control
не меняется, если IsDirectionReversed
- Property
установлено с помощью Animation
?