Witam. Mam problem z przesuwaniem kształtów za pomocą przycisków. Napisałem takie coś:
<Window.Resources>
<vm:PanelViewModel x:Key="PanelViewModel" />
</Window.Resources>
<Rectangle DataContext="{StaticResource PanelViewModel}" x:Name="Panel" Style="{StaticResource Panel}"
Width="{Binding Width, Mode=TwoWay}" Canvas.Left="{Binding PositionX, Mode=TwoWay}" Canvas.Top="{Binding PositionY}" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="KeyDown">
<i:InvokeCommandAction Command="{Binding MoveCommand}"></i:InvokeCommandAction>
</i:EventTrigger>
</i:Interaction.Triggers>
</Rectangle>
gdzie w klasie viewmodelu komenda MoveCommand odpowiada za zmianę wartości PositionX, kkóra jest bindowana do Canvas.Left
Fragment klasy Viewmodelu:
class PanelViewModel : BindableBase
{
private readonly Panel panel = new Panel();
public ICommand MoveCommand { get; set; }
public PanelViewModel()
{
MoveCommand = new DelegateCommand(MoveAction);
}
public int PositionX
{
get { return panel.PositionX; }
set
{
panel.setPositionX(value);
RaisePropertyChanged("PositionX");
}
}
public void MoveAction()
{
PositionX -= 10;
}
}
Niestety moje rozwiązanie nie działa. Próbowałem tego samego rozwiązania na sliderze i zadziałało(prostokąt się przesunął) dopiero po kliknięciu na slider.
Będę wdzięczny za pomoc.