0

好吧,我做了一个 Scolling 画布(有时我在里面放了一些按钮来打开我的程序或做其他事情)它工作得很好。但我尝试将其制作成 .dll,但我注意到我使用的方法对 .dll 毫无价值,因为它会在放置时自动滚动,我无法添加更多内容。所以我想要的是一个空的画布(或任何东西),它可以自动滚动内容并让我在其中添加更多项目。例如:按钮、文本块、标签等,它将滚动所有这些。

编辑:我希望能够将控件从工具箱拖到窗口中,然后在上面添加按钮等,它会自动滚动它们。

下面的例子。仅限 xaml .. 想按照我想要的方式进行编码,必须用 c# 而不是 xaml。因为一旦将其添加为用户控件,您就无法向其添加其他控件、工具箱项目并期望它们自动滚动..

<Canvas ClipToBounds="True" x:Name="scrollerCanvas" Height="588">
    <Grid x:Name="OurContainer" Height="588" Background="{x:Null}" ClipToBounds="False">
        <Grid.Clip>
            <RectangleGeometry Rect="0,0,1087,588" RadiusX="30" RadiusY="30" />
        </Grid.Clip>
        <StackPanel Height="800" Margin="1">
            <StackPanel.RenderTransform>
                <TranslateTransform x:Name="scroll" />
            </StackPanel.RenderTransform>

        </StackPanel>

        <Grid.Triggers>
            <EventTrigger RoutedEvent="Canvas.Loaded">
                <EventTrigger.Actions>
                    <BeginStoryboard>
                        <Storyboard RepeatBehavior="Forever">
                            <DoubleAnimation 
                                From="620" To="-450"
                                Storyboard.TargetName="scroll" Storyboard.TargetProperty="Y"
                                Duration="0:0:28" SpeedRatio=".8" />
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger.Actions>
            </EventTrigger>
        </Grid.Triggers>
    </Grid>
</Canvas>
4

1 回答 1

0

您可以在其中使用带有 Canvas 的 ScrollViewer。

于 2013-01-12T13:38:24.120 回答