- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 XAML 在 WPF 中为 ScrollViewer 设置皮肤,但遇到了挑战。通常我的滚动条是隐藏的,但当用户开始平移屏幕时,它们就会变得可见。我已经使用 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_HorizontalScrollBar”。但是,当我在 Storyboard 声明中手动设置 TargetName 时,一切都按预期进行。无论如何,我可以通过在 BeginStoryboard 中分配 TargetName 来完成这项工作吗?
最佳答案
我想你只是不想复制粘贴动画?您尝试做的事情可能永远不会成功,该属性的值不会被继承,而且您无论如何都需要两个 Storyboard,您不能两次启动同一个 Storyboard(更不用说在不同的控件上了)。
这是您至少可以保留一个动画实例的方法:
<DoubleAnimationUsingKeyFrames x:Key="Animation"
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>
<!-- ... -->
<EventTrigger RoutedEvent="ScrollViewer.ScrollChanged">
<BeginStoryboard>
<Storyboard Storyboard.TargetName="PART_VerticalScrollBar">
<StaticResourceExtension ResourceKey="Animation" />
</Storyboard>
</BeginStoryboard>
<BeginStoryboard>
<Storyboard Storyboard.TargetName="PART_HorizontalScrollBar">
<StaticResourceExtension ResourceKey="Animation" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
关于c# - 在 EventTrigger 中为 Storyboard 分配 TargetName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8209104/
我正在使用 MvmmCross v3 框架和 Windows.UI.Interactivity 开发 WinRT . 我想要一个带有 EventTrigger 的 TextBox,用于启动命令的事件
我想在触摸特定键(例如,空格键)时使用 EventTrigger 调用命令 目前我有: 现在我如何指定只有当 KeyDown 与空
我在一个循环中使用一组游戏对象(图像 Sprite )填充了一个网格布局。在循环中,我希望图像是可点击的,并将玩家带到不同的场景。 如果尝试以下它有效: EventTrigger[] trig
我在 DataTemplate 中有一个自定义行为,它引发了一个自定义路由事件。我想用 TriggerAction 处理该事件(发送消息、调用命令等)。
如您所知,您不能在没有行为的情况下将事件直接绑定(bind)到命令: 这工作得很好,但是现在我必须从双击 Data
我希望能够使用 EventTrigger 设置属性,但这有很多问题。 1) EventTriggers 仅支持 Actions,因此我必须使用 StoryBoard 来设置我的属性。 2)一旦我使用
我正在尝试采用一种风格来执行我的所有触发器。这就是我所拥有的,但 SoundPlayerAction 没有触发:
我想在应用程序启动时播放一次 wav 文件(WPF 应用程序 .NET 4.5)。我读到一个很好的实现方法是使用 EventTrigger 和 SoundPlayerAction 这样的:
我有一个我自定义的 WPF TreeView,看起来像这样: 我定义了一个 EventTrigger 来响应点击:
我现在正在学习游戏设计,首先,SuperMarioBro 是我现在要用很少的引擎完成的游戏。我想设计一个触发器,这样当马里奥点击问号时,就会出现蘑菇、金币或白花等。所以当击中它时,trigger 被触
我有一个类 MyAttachedEventClassAquarium,它定义了从 MSDN 文档中获取的自定义附件。我有一个 Window,它在 XAML 中使用 EventTrigger 来 Hoo
我在 EventTrigger 中有以下绑定(bind): ... 过程如下:自定义控件(即它的模板)有一个名为 SoundFile 的属性,它是一个枚
我正在尝试在触发自定义路由事件(由我定义)时触发 Storyboard播放。该事件称为 CustomTest 并在 MyControl 中定义。 虽然正在触发事件,但触发器并未播放 Storyboar
NOTE I have asked the related question (with an accepted answer): How to combine DataTrigger and Tri
在 Unity3D 2017 版中,您可以通过执行以下操作一次添加多个 EventTriggers: for (int i = 0; i { InventorySlotCopy(); });
在 Unity3D 2017 版中,您可以通过执行以下操作一次添加多个 EventTriggers: for (int i = 0; i { InventorySlotCopy(); });
我在 ItemsControl 的 DataTemplate 中有一个 Grid,所以这个网格会有很多副本。我想在网格上单击鼠标以触发 DataTemplate 之外的元素的 Storyboard 。
就像键盘的 Input.GetKey() 有什么方法可以从 UI 按钮 事件触发器 OnPointerDown 获取连续输入?因为对于带有动画的运动控制,它给出了非常奇怪的输出?我不得不一次又一次地点
我是一名优秀的程序员,十分优秀!