怎样用c#写一个程序让一个矩形框自己移动 30
7个回答
展开全部
使用关键帧,把下面的代码放入WPF程序中,将圆环改为矩形。
<Grid>
<!—Canvas定义一个区域或画布,在该区域中可以使用相对坐标定位子元素-->
<Canvas Width="610" Height="300">
<!—使用关键帧动画移动圆环位置 -->
<Ellipse Canvas.Top="100" Canvas.Left="10" Height="100"
Width="100" Stroke="Black" StrokeThickness="5">
<Ellipse.RenderTransform>
<TranslateTransform x:Name="AnimatedTranslateTransform" />
</Ellipse.RenderTransform>
<Ellipse.Triggers>
<EventTrigger RoutedEvent="Ellipse.Loaded">
<BeginStoryboard>
<Storyboard>
<!—沿X轴移动圆环,用3幅关键帧完成动画-->
<DoubleAnimationUsingKeyFrames
Storyboard.TargetName="AnimatedTranslateTransform"
Storyboard.TargetProperty="X"
Duration="0:0:7"
RepeatBehavior="Forever">
<!--在最初四秒内,将使用线性关键帧 LinearDoubleKeyFrame 类的实例-->
<!--使圆环沿着某个路径以固定的速率从其起始位置移到 500 位置-->
<LinearDoubleKeyFrame Value="500" KeyTime="0:0:4" />
<!--在第四秒结束时,将使用离散关键帧DiscreteDoubleKeyFrame 类的实例,使圆环在一瞬间移到下一个位置。离散关键帧将在值之间创建突然跳转。突然出现在400位置-->
<DiscreteDoubleKeyFrame Value="400" KeyTime="0:0:4" />
<!--在最后两秒钟内,使用样条关键帧SplineDoubleKeyFrame 类的实例将圆环移回其起始位置。圆环开始时缓慢移动,然后其速度以指数级加快,直到关键帧时间段结束-->
<SplineDoubleKeyFrame KeySpline="0.6,0.0 0.9,0.00"
Value="0" KeyTime="0:0:7" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Ellipse.Triggers>
</Ellipse >
</Canvas>
</Grid>
见我的博客,百度搜danyaody第8章
<Grid>
<!—Canvas定义一个区域或画布,在该区域中可以使用相对坐标定位子元素-->
<Canvas Width="610" Height="300">
<!—使用关键帧动画移动圆环位置 -->
<Ellipse Canvas.Top="100" Canvas.Left="10" Height="100"
Width="100" Stroke="Black" StrokeThickness="5">
<Ellipse.RenderTransform>
<TranslateTransform x:Name="AnimatedTranslateTransform" />
</Ellipse.RenderTransform>
<Ellipse.Triggers>
<EventTrigger RoutedEvent="Ellipse.Loaded">
<BeginStoryboard>
<Storyboard>
<!—沿X轴移动圆环,用3幅关键帧完成动画-->
<DoubleAnimationUsingKeyFrames
Storyboard.TargetName="AnimatedTranslateTransform"
Storyboard.TargetProperty="X"
Duration="0:0:7"
RepeatBehavior="Forever">
<!--在最初四秒内,将使用线性关键帧 LinearDoubleKeyFrame 类的实例-->
<!--使圆环沿着某个路径以固定的速率从其起始位置移到 500 位置-->
<LinearDoubleKeyFrame Value="500" KeyTime="0:0:4" />
<!--在第四秒结束时,将使用离散关键帧DiscreteDoubleKeyFrame 类的实例,使圆环在一瞬间移到下一个位置。离散关键帧将在值之间创建突然跳转。突然出现在400位置-->
<DiscreteDoubleKeyFrame Value="400" KeyTime="0:0:4" />
<!--在最后两秒钟内,使用样条关键帧SplineDoubleKeyFrame 类的实例将圆环移回其起始位置。圆环开始时缓慢移动,然后其速度以指数级加快,直到关键帧时间段结束-->
<SplineDoubleKeyFrame KeySpline="0.6,0.0 0.9,0.00"
Value="0" KeyTime="0:0:7" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Ellipse.Triggers>
</Ellipse >
</Canvas>
</Grid>
见我的博客,百度搜danyaody第8章
展开全部
矩形框要么就自己画,要么就直接用VB的那个控件的。ractangleshape的控件的。。
当然前提是你装VS的时候安装了VB。。
如果你是自己画的话,就需要用Gdi了。。
然后用一个定时器,在定时器的tick时间里面不断的改变矩形框的位置的。。就是LEFT和RIGHT属性的,或者就像一楼说的那样,改变POSITION也是可以的。。
当然前提是你装VS的时候安装了VB。。
如果你是自己画的话,就需要用Gdi了。。
然后用一个定时器,在定时器的tick时间里面不断的改变矩形框的位置的。。就是LEFT和RIGHT属性的,或者就像一楼说的那样,改变POSITION也是可以的。。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用一个timer控件控制移动时间和速度,然后在timer控件的tick事件中把 矩形的 location的Y坐标自加,就让他往右走了.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
矩形框是TextBox嘛 是的话就改变它的Position位置
不是的话,你要自己画出来,然后移动过程中,不断擦除重画,大概就是这样
不是的话,你要自己画出来,然后移动过程中,不断擦除重画,大概就是这样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
具体的代码实现起来比较多,很难以用语言描述。我找了一个地址链接,是用C#绘制一个矩形,并且可拖拽。你直接参考下面的地址,下载下来就可以了。
http://www.codeproject.com/KB/graphics/RectangleResizable.aspx
http://www.codeproject.com/KB/graphics/RectangleResizable.aspx
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询