2014-01-07 55 views
0

我有一个页面托管在一个窗口中的窗口。WPF页面效果

<Grid Grid.Row="1" Margin="0,30,0,0" ClipToBounds="True"> 
    <Frame x:Name="PageHostFrame" Grid.Row="1"/> 
</Grid> 

当我显示的页面,页面加载和代码可见:

PageHostFrame.Content = ActivePage; 

是否有可能从使用WPF一些花哨的技术左至右滚动页面进入视野?

例如,页面最右侧窗口开始关闭,因此左边的位置是关闭屏幕,然后将其移动(动画)从它在托管框架的左右。

  1. 这是页面不显示的初始状态。
  2. 现在显示页面。它从框架开始生命,然后滚动以适应框架。所以,它的左侧位置将在0

Actions

+0

总之,你想从左到右移动网格,当它被加载..我不明白..thats为什么问你。 –

+0

我已经更新了这个问题。 – Andez

回答

1

这的确是可能的,但它是工作的公平位。您需要从输入和输出用户界面的Visual中创建一个VisualBrush,然后在屏幕上滑动它们,然后移除旧的UI屏幕,然后使用实际控件切换“绘制”UI。

当然,让别人去做这件事更容易,所以为什么不看看CodePlex上的Transitionals?我之前使用过它,它确实简化了一些事情。还有更多可用的转换......认为Microsoft Powerpoint转换。

+0

看起来很酷。结帐 – Andez

0

试试这个..Sorry如果我错了

<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也和上面的代码调整的持续时间和幅度,按您的你requirement.Thank。