Я пытаюсь создать оболочку ScrollViewer в WPF с использованием XAML, но столкнулся с проблемой.Обычно мои полосы прокрутки скрыты, но когда пользователь начинает панорамировать экран, они становятся видимыми.Я реализовал эту функцию с помощью ScrollChanged следующим образом:
<!-- Storyboards -->
<Storyboard x:Key="uiStoryboardFader">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)">
<EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="1.0" />
<EasingDoubleKeyFrame KeyTime="0:0:2.0" Value="1.0" />
<EasingDoubleKeyFrame KeyTime="0:0:2.3" Value="0.0" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
<!-- Style Declaration -->
<!-- Control Template -->
<ScrollBar x:Name="PART_VerticalScrollBar" Opacity="0.0" />
<ScrollBar x:Name="PART_HorizontalScrollBar" Opacity="0.0" />
<!-- Control Template Triggers -->
<EventTrigger RoutedEvent="ScrollViewer.ScrollChanged">
<BeginStoryboard Storyboard="{StaticResource uiStoryboardFader}"
Storyboard.TargetName="PART_VerticalScrollBar" />
<BeginStoryboard Storyboard="{StaticResource uiStoryboardFader}"
Storyboard.TargetName="PART_HorizontalScrollBar" />
</EventTrigger>
<!-- Closing -->
. Это позволяет изменить непрозрачность всего ScrollViewer, даже если для TargetName было установлено значение «PART_VerticalScrollBar» и «PART_HorizontScrollBar».Однако, когда я вручную устанавливаю TargetName в объявлении Storyboard, все работает как положено.Можно ли как-нибудь это сделать, назначив TargetName внутри BeginStoryboard?