C# 在WPF中滚动背景动画
这是我的代码:C# 在WPF中滚动背景动画,c#,wpf,vb.net,xaml,C#,Wpf,Vb.net,Xaml,这是我的代码: <DrawingBrush Viewport="0,0,16,16" ViewportUnits="Absolute" Stretch="None" TileMode="Tile" x:Key="dbCheckerBoard"> <DrawingBrush.Drawing> <DrawingGroup> <GeometryDrawing Brush="LightGray">
<DrawingBrush Viewport="0,0,16,16" ViewportUnits="Absolute" Stretch="None" TileMode="Tile" x:Key="dbCheckerBoard">
<DrawingBrush.Drawing>
<DrawingGroup>
<GeometryDrawing Brush="LightGray">
<GeometryDrawing.Geometry>
<GeometryGroup>
<RectangleGeometry Rect="0,0,8,8"/>
<RectangleGeometry Rect="8,8,8,8"/>
</GeometryGroup>
</GeometryDrawing.Geometry>
</GeometryDrawing>
<GeometryDrawing Brush="White">
<GeometryDrawing.Geometry>
<GeometryGroup>
<RectangleGeometry Rect="8,0,8,8"/>
<RectangleGeometry Rect="0,8,8,8"/>
</GeometryGroup>
</GeometryDrawing.Geometry>
</GeometryDrawing>
</DrawingGroup>
</DrawingBrush.Drawing>
</DrawingBrush>
这为我的控件元素提供了以下背景:
现在,我想轻轻地滚动背景,使其看起来像动画,有人能告诉我怎么做吗?您可以尝试添加:
<ControlName.Triggers>
<EventTrigger RoutedEvent="ControlName.Loaded">
<BeginStoryboard>
<Storyboard>
<RectAnimation
Storyboard.TargetProperty="Background.Viewport"
From="0 0 16 16" To="16 16 16 16" Duration="0:0:1"
RepeatBehavior="Forever" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</ControlName.Triggers>
然后像这样使用它:
<TextBlock Style="{StaticResource ScrollingGridStyle}"/>
或者,将其添加到现有样式中,如:
<Style TargetType="TextBox"
x:Key="MyPrettyTextBox"
BasedOn="{StaticResource ScrollingGridStyle}">
不幸的是,WPF不太支持创建复合样式。您是否尝试过为
视口
x/y属性设置动画?已编辑-您只能在控件上使用触发器。谢谢,它工作得很好,但是有没有办法将动画添加到DrawingBrush,以便无论我在哪个控件上使用DrawingBrush,它会自动滚动?不幸的是不会,但我已经编辑了我的答案,加入了一个你可以使用的更好的选择。
<Style TargetType="TextBox"
x:Key="MyPrettyTextBox"
BasedOn="{StaticResource ScrollingGridStyle}">