I';我试图用c#和xaml在画布上移动我的图像
我试图在WPF应用程序中使用C#在画布上移动PNG 我试过使用额外的指令。我用过我能想到的每一个关键词。我已经创建了事件处理程序,但事件似乎没有正确触发。我的形象无法移动I';我试图用c#和xaml在画布上移动我的图像,c#,xaml,C#,Xaml,我试图在WPF应用程序中使用C#在画布上移动PNG 我试过使用额外的指令。我用过我能想到的每一个关键词。我已经创建了事件处理程序,但事件似乎没有正确触发。我的形象无法移动 namespace Pazulu { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window {
namespace Pazulu {
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
}
private void Image_KeyDown(object sender, KeyEventArgs e) {
var alpha = Key.Space;
if (e.Key == alpha)
Canvas.SetLeft(pazulu, 300);
}
}
}
名称空间Pazulu{
///
///MainWindow.xaml的交互逻辑
///
公共部分类主窗口:窗口{
公共主窗口(){
初始化组件();
}
私有void Image_KeyDown(对象发送方,KeyEventArgs e){
var alpha=键空间;
如果(e.Key==alpha)
Canvas.SetLeft(pazulu,300);
}
}
}
没有错误消息。预期结果至少应该是在调试时捕获事件,但未检测到任何事件。我的形象处于休眠状态 您可能需要订阅窗口上的KeyDown事件。比如:
<Window x:Class="WpfApp3.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp3"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800" KeyDown="MainWindow_OnKeyDown">
<Canvas>
<Button Name="MyButton" Canvas.Right="10">Test</Button>
</Canvas>
</Window>
试验
使用System.Windows;
使用System.Windows.Controls;
使用System.Windows.Input;
命名空间WpfApp3
{
///
///MainWindow.xaml的交互逻辑
///
公共部分类主窗口:窗口
{
公共主窗口()
{
初始化组件();
}
私有void主窗口\u OnKeyDown(对象发送方,KeyEventArgs e)
{
如果(e.Key==Key.Right)
{
//不管怎样,只是一个例子
Canvas.SetRight(MyButton,Canvas.GetRight(MyButton)+5);
}
}
}
}
图像不太可能实际接收到关键事件。我会在窗口上添加一个keydown事件处理程序(并验证它是否触发),然后在那里设置图像位置(就像您已经做的那样)复制它。我会将事件放在窗口上,看看它是否拾取它。谢谢你的帮助。
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
namespace WpfApp3
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void MainWindow_OnKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Right)
{
//Whatever, just an example
Canvas.SetRight(MyButton, Canvas.GetRight(MyButton) + 5);
}
}
}
}