C# WPF Изменение формы (перемещение) по нажатию клавиши
Изучаю WPF. Хочу поиграться с элементами управления, изменить форму по нажатию клавиши, а потом переместить. но столкнулся с банальной проблемой. Хочу изменить форму по нажатию клавиши, ошибок в коде нет, но код не работает
namespace tanks
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void MessageBox_TextChanged(object sender, TextChangedEventArgs e)
{
InputBox.Text = $"Высота: {Tank.Height} \nШирина: {Tank.Width}";
}
private void Tank_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Up)
{
Tank.Height = 1020;
}
}
private void Map_KeyDown(object sender, KeyEventArgs e)
{
}
private void InputBox_KeyDown(object sender, KeyEventArgs e)
{
}
}
}
и xaml
<Window x:Class="tanks.MainWindow"
Title="MainWindow" Height="600" Width="800">
<Grid>
<Canvas Name="Map" HorizontalAlignment="Center" Height="505" Margin="10,10,10,55" VerticalAlignment="Center" Width="772" KeyDown="Map_KeyDown">
<Rectangle Name="Tank" Fill="#FFF4F4F5" Height="40" Canvas.Left="323" Stroke="Black" Canvas.Top="393" Width="30" KeyDown="Tank_KeyDown"/>
</Canvas>
<TextBox Name="InputBox" HorizontalAlignment="Left" Height="40" Margin="10,520,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="200" TextChanged="MessageBox_TextChanged" KeyDown="InputBox_KeyDown"/>
</Grid>
</Window>
Ответы (1 шт):
Автор решения: jimac
→ Ссылка
Проблему частично решил. Нужно вставить элемент управления по типу кнопки и в ней вносить изменения. Судя по книжке Адама Натана "WPF4 подробное руководство", должен быть фокус клавиатуры на элементе, через свойство IsKeyboardFocused. Но я пока не понял как его реализовать в пустом месте формы