如何使用情节提要移动UI元素
本文关键字:移动 UI 元素 何使 用情 | 更新日期: 2023-09-27 18:23:55
我在故事板中使用过Opacity属性但我不知道如何移动像网格堆叠面板按钮这样的UI元素。。。。。在c#中?(我用c#而不是xaml编写故事板)
好吧,这取决于你的实际布局:你想在网格或画布中为按钮设置动画(可以分别设置Margin属性或Canvas的左附加属性的动画)?是要设置特性本身的动画还是变换的动画(后者将设置RenderTransform的动画,特别是TranslateTransform)。如果您仍然想引用"旧"位置,则可以使用RenderTransform。
一个简单的方法是:
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<Grid.Triggers>
<EventTrigger RoutedEvent="Grid.Loaded">
<BeginStoryboard>
<Storyboard RepeatBehavior="Forever">
<DoubleAnimation Storyboard.TargetName="myButton"
Storyboard.TargetProperty="(Canvas.Left)" From="1" To="350"
Duration="0:0:10" BeginTime="0:0:0"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Grid.Triggers>
<Canvas x:Name="myCanvas" Background="Yellow">
<Button x:Name="myButton" Width="100" Height="30" Canvas.Left="100" Canvas.Top="100" />
</Canvas>
</Grid>
</Window>
如果你在故事板中使用blend会更好。。我已经为stackpanel向右移动生成了一个代码。。只要检查一下。
你可以浏览这个视频,因为它非常好,它将在你的情况下完美工作
<Page.Resources>
<Storyboard x:Name="Storyboard1">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" Storyboard.TargetName="hello">
<EasingDoubleKeyFrame KeyTime="0" Value="0"/>
<EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="100"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</Page.Resources>
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<StackPanel Name="hello" Orientation="Vertical" HorizontalAlignment="Left" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5" >
<StackPanel.RenderTransform>
<CompositeTransform/>
</StackPanel.RenderTransform>
<TextBlock Text="hello1" FontSize="50" />
<Button Content="Button" FontSize="50" Click="Button_Click_1" />
</StackPanel>
</Grid>
要开始执行此操作,请单击按钮。。
private void Button_Click_1(object sender, RoutedEventArgs e)
{
Storyboard1.Begin();
}
为了更好地理解,只需阅读如何使用混合物。。