【问题标题】:Drawing line "slowly" programmatically with wpf使用 wpf 以编程方式“缓慢”绘制线条
【发布时间】:2012-11-03 01:17:11
【问题描述】:

我有多个点,我想用 WPF 绘制连接这些点的线,但我想看到它们绘制得很慢,我需要以编程方式进行,我该怎么做?
谢谢。

【问题讨论】:

  • 我们是在谈论直线还是您还需要曲线?对于直线,请查看stackoverflow.com/questions/12393908/generating-animated-line/…
  • 这些线是轴平行还是任意角度?在第一种情况下,您可能会为每个时间增量绘制一小段线。如果他们有任意的倾向,事情就会更加复杂。
  • 查看此链接..它可能会对您有所帮助... [以编程方式绘制和移动线条][1] [1]:stackoverflow.com/questions/9698543/…
  • 我已经尝试过故事板,但我不知道如何从代码中做到这一点
  • @RahulRanjan 我不想移动线条,我希望它们慢慢绘制,我的意思是看到它们被绘制

标签: c# wpf drawing


【解决方案1】:

你可以试试这样的:

<Grid>
    <Grid.Triggers>
        <EventTrigger RoutedEvent="MouseDown">
            <EventTrigger.Actions>
                <BeginStoryboard>
                    <Storyboard TargetName="MyLine">
                        <DoubleAnimation Storyboard.TargetProperty="X2" To="100" Duration="0:0:5"/>
                        <DoubleAnimation Storyboard.TargetProperty="Y2" To="100" Duration="0:0:5"/>
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger.Actions>
        </EventTrigger>
    </Grid.Triggers>
        <Line X1="10" Y1="10" X2="20" Y2="20" Stroke="Black" Name="MyLine"/>
</Grid>

当您点击这条线时,您会看到它在增长。您可以将启动此故事板附加到您想要的任何事件或代码,我只是使用鼠标按下来进行演示。

如果你想画多条线,你可以这样做:

<Grid>
    <Grid.Triggers>
        <EventTrigger RoutedEvent="Loaded">
            <EventTrigger.Actions>
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation Storyboard.TargetName="Line1" Storyboard.TargetProperty="X2" To="100" Duration="0:0:5"/>
                        <DoubleAnimation Storyboard.TargetName="Line1" Storyboard.TargetProperty="Y2" To="100" Duration="0:0:5"/>
                        <DoubleAnimation Storyboard.TargetName="Line2" Storyboard.TargetProperty="X2" To="200" Duration="0:0:5" BeginTime="0:0:5"/>
                        <DoubleAnimation Storyboard.TargetName="Line2" Storyboard.TargetProperty="Y2" To="0" Duration="0:0:5" BeginTime="0:0:5"/>
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger.Actions>
        </EventTrigger>
    </Grid.Triggers>
        <Line X1="10" Y1="10" X2="10" Y2="10" Stroke="Black" Name="Line1"/>
    <Line X1="100" Y1="100" X2="100" Y2="100" Stroke="Black" Name="Line2"/>
</Grid>

当然,如果您不能提前在 XAML 中声明这些情节提要,则很有可能即时构建这些情节提要。

【讨论】:

猜你喜欢
  • 2014-05-06
  • 2016-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多