好吧,我做了一个 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>