WPF页面效果
我有一个窗口,其中一个页面位于一个框架中WPF页面效果,wpf,user-interface,Wpf,User Interface,我有一个窗口,其中一个页面位于一个框架中 <Grid Grid.Row="1" Margin="0,30,0,0" ClipToBounds="True"> <Frame x:Name="PageHostFrame" Grid.Row="1"/> </Grid> 是否可以使用WPF中的一些奇特技术从左向右滚动页面进入视图 例如,页面从窗口的最右边开始,所以左边的位置脱离屏幕,然后从它所在的框架的右边到左边移动(动画)。 这是不显示页面的初始状态 现在显
<Grid Grid.Row="1" Margin="0,30,0,0" ClipToBounds="True">
<Frame x:Name="PageHostFrame" Grid.Row="1"/>
</Grid>
是否可以使用WPF中的一些奇特技术从左向右滚动页面进入视图
例如,页面从窗口的最右边开始,所以左边的位置脱离屏幕,然后从它所在的框架的右边到左边移动(动画)。
这确实是可能的,但这是一项相当艰巨的工作。您需要从输入和输出UI的
Visual
s中制作一个VisualBrush
,然后设置它们在屏幕上滑动的动画,然后移除旧的UI屏幕,然后用实际控件切换“绘制的”UI
当然,让别人来做这项工作要容易得多,所以为什么不看看CodePlex呢?我以前用过它,它确实简化了事情。还有更多的转换可用。。。想想Microsoft Powerpoint转换。试试这个..如果我错了,很抱歉
<Frame Background="White" x:Name="PageName">
<Frame.Content>
<Page Background="LightBlue" >
<Page.Style>
<Style TargetType="Page">
<Setter Property="RenderTransformOrigin" Value="0.3,0"></Setter>
<Setter Property="RenderTransform">
<Setter.Value>
<TranslateTransform x:Name="st" X="0"></TranslateTransform>
</Setter.Value>
</Setter>
<Style.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard >
<DoubleAnimation Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)" From="1376" AccelerationRatio="0.3" To="0" Duration="0:0:0.6">
<DoubleAnimation.EasingFunction>
<ExponentialEase EasingMode="EaseOut"></ExponentialEase>
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>
</Page.Style>
</Page>
</Frame.Content>
</Frame>
您也可以使用scaletransform,对于上述代码,请根据您的要求调整持续时间和宽度。谢谢。简而言之,您希望在加载网格时从左向右移动网格。抱歉,我不明白。这就是为什么问您的原因。我已更新了问题。
<Frame Background="White" x:Name="PageName">
<Frame.Content>
<Page Background="LightBlue" >
<Page.Style>
<Style TargetType="Page">
<Setter Property="RenderTransformOrigin" Value="0.3,0"></Setter>
<Setter Property="RenderTransform">
<Setter.Value>
<TranslateTransform x:Name="st" X="0"></TranslateTransform>
</Setter.Value>
</Setter>
<Style.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard >
<DoubleAnimation Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)" From="1376" AccelerationRatio="0.3" To="0" Duration="0:0:0.6">
<DoubleAnimation.EasingFunction>
<ExponentialEase EasingMode="EaseOut"></ExponentialEase>
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>
</Page.Style>
</Page>
</Frame.Content>
</Frame>