这是我第一WPF项目。我试图得到一个滚动的信贷的作用有一堆的旗帜形PNG的叠在一起的其他垂直。

我目前的做法是有一大堆的图片在这种情况下.每一个图像是约1024x150,并有约30图像。他们叠垂直。

我开始在这种情况下,在0,200,所以大多数是关闭幕。然后,我有一个故事情节(创造在混合),意味着它Y轴线上,所有的方式。动画的开始,但是 该问题是该部在这种情况下,这是最初关闭画面从来没有油漆和保持切断。 只有最初可见区域在这种情况下,动画.

这感觉就像在这种情况下,需要重新粉刷过。是这种方法曾经去工作或做我需要做一些完全不同?

摘省略窗和窗口。触发器:

<Window.Resources>
    <Storyboard x:Key="sb_HR">
        <DoubleAnimationUsingKeyFrames 
                    BeginTime="00:00:00" 
                    Storyboard.TargetName="StackPanel1"
                    Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)">
            <SplineDoubleKeyFrame KeyTime="00:00:30" Value="-1950"/>
        </DoubleAnimationUsingKeyFrames>
    </Storyboard>
</Window.Resources>


<Grid x:Name="LayoutRoot">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="1024" />
    </Grid.ColumnDefinitions>        
    <StackPanel   Name="StackPanel1" Margin="0,0,0,0" RenderTransformOrigin="0.5,0.5">
        <StackPanel.RenderTransform>
            <TransformGroup>
                <ScaleTransform ScaleX="1" ScaleY="1"/>
                <SkewTransform AngleX="0" AngleY="0"/>
                <RotateTransform Angle="0"/>
                <TranslateTransform X="0" Y="0"/>
            </TransformGroup>
        </StackPanel.RenderTransform>
        <Image Margin="0,50,0,0" Source="title.png"  x:Name="title" Height="150" VerticalAlignment="Top" Stretch="Uniform"></Image>
        <Image Margin="0,50,0,0" Source="1.png" x:Name="V1_L1" Height="150" VerticalAlignment="Top" Stretch="Uniform" ></Image>
        <Image Margin="0,50,0,0" Source="2.png" x:Name="V1_L2" Height="150" VerticalAlignment="Top" Stretch="Uniform" ></Image>
        <Image Margin="0,50,0,0" Source="3.png" x:Name="V1_L3" Height="150" VerticalAlignment="Top" Stretch="Uniform" ></Image>
        <Image Margin="0,50,0,0" Source="4.png" x:Name="V1_L4" Height="150" VerticalAlignment="Top" Stretch="Uniform" ></Image>
        <Image Margin="0,50,0,0" Source="5.png" x:Name="V1_L5" Height="150" VerticalAlignment="Top" Stretch="Uniform" ></Image>
        <Image Margin="0,50,0,0" Source="6.png" x:Name="V1_L6" Height="150" VerticalAlignment="Top" Stretch="Uniform" ></Image>
        <Image Margin="0,50,0,0" Source="7.png" x:Name="V1_L7" Height="150" VerticalAlignment="Top" Stretch="Uniform" ></Image>
        <Image Margin="0,50,0,0" Source="8.png" x:Name="V1_L8" Height="150" VerticalAlignment="Top" Stretch="Uniform" ></Image>
    </StackPanel>
</Grid>

编辑: 我已经找到ClipToBounds,并试图设置为虚假的,但是它已经是错误的。有人MSDN上的具有同样的问题,因为我在 http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/5764645e-cb4f-4137-a525-4e8698ee43b6 -我不认为有一个解决方案。

有帮助吗?

解决方案

我看到两个东西,你可以尝试出:

  1. 使用ScrollViewer与残疾滚动围绕在这种情况下.可悲的是,你不能动的滚动偏移量直接,因此将需要建立什么样的一个定时器编码后面,并呼ScrollToVerticalOffset()周期性。

  2. 尝试把在这种情况下,在一个画和动画画布上。顶部(设在这种情况下),而不是RenderTransforms.

我将提供一个代码样本如果你需要一个。

安德烈*

其他提示

我同意安德烈,只是使有滚动条禁用一个新的列表框类型。

您可以动画滚动偏移量,我知道了发生在一个自定义控件我正在写现在。这是一个函数类中的列表框:


Duration animationDuration = new Duration(new TimeSpan(0, 0, 0, 0, _scrollSpeed));
DoubleAnimation animateHscroll = new DoubleAnimation(thisScrollViewer.HorizontalOffset, TargetHorizontalOffset, animationDuration);

thisScrollViewer.BeginAnimation(HorizontalScrollOffsetProperty, animateHscroll);

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top