gpt4 book ai didi

wpf - 按下键移动 Canvas

转载 作者:行者123 更新时间:2023-12-04 05:43:21 25 4
gpt4 key购买 nike

我想在按下 -> 时向右移动 Canvas 。
我设置了事件 KeyDown,这是事件的方法

private void Window_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key==Key.Right)
{

}
}

但是里面写什么 if ? Canvas.setLeft不起作用
 <Canvas x:Name="totle" KeyDown="Window_KeyDown">
<Ellipse Name="yio" Canvas.Left="40" Canvas.Top="40" Height="30" Width="30" Fill="Beige"/>
<Line X1="40" Canvas.Left="67" Canvas.Top="51" StrokeThickness="40" Stroke="Red" Height="10" Width="45" Fill="#FFD86464" OpacityMask="Red" />
<Rectangle Canvas.Left="20" Canvas.Top="70" Width="70" Height="20" Fill="Beige"/>
</Canvas>

最佳答案

要达到这个效果,首先使用 RenderTransform并将其命名为 canvasTranform:

<Canvas x:Name="totle" KeyDown="Window_KeyDown">
<Canvas.RenderTransform>
<TranslateTransform x:Name="canvasTransform" />
</Canvas.RenderTransform>
<Ellipse Name="yio" Canvas.Left="40" Canvas.Top="40" Height="30" Width="30" Fill="Beige"/>
<Line X1="40" Canvas.Left="67" Canvas.Top="51" StrokeThickness="40" Stroke="Red" Height="10" Width="45" Fill="#FFD86464" OpacityMask="Red" />
<Rectangle Canvas.Left="20" Canvas.Top="70" Width="70" Height="20" Fill="Beige"/>
</Canvas>

然后,在您的事件处理程序中,引用 TranslateTransform按名称并设置 X属性(property):
    private void Window_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Right)
{
canvasTransform.X = 100;
}
}

如果您要添加的变换( Canvas 在您按向右箭头时不断向右移动),请添加到 X每次属性:
    private void Window_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Right)
{
canvasTransform.X += 100;
}
}

关于wpf - 按下键移动 Canvas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10988674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com