Bewegen Sie ein Rechteck auf einer Leinwand in WPF aus dem code hinter
In meiner XAML-ich habe eine listbox und einige Textfelder in einem raster und ein reactangle in eine Leinwand:
Title="MainWindow" Height="350" Width="500" WindowStartupLocation="CenterScreen">
<Grid>
<ListBox HorizontalAlignment="Left"
Margin="12,12,0,12"
Name="listBoxContainer"
Width="120">
<ListBoxItem Content="Item1" />
<ListBoxItem Content="Item2" />
<ListBoxItem Content="Item3" />
</ListBox>
<TextBox Height="23"
Margin="138,12,85,0"
Name="textBoxAddress"
VerticalAlignment="Top" />
<TextBox Margin="138,41,85,12"
Name="textBoxMsg" />
<Button Content="Button"
Name="buttonAnimation"
Width="75"
Margin="0,10,5,0"
Height="23"
VerticalAlignment="Top"
HorizontalAlignment="Right"
Click="Button1Click" />
<Canvas Name="CanvasAnimation">
<Rectangle Canvas.Left="408"
Canvas.Top="140"
Height="50"
Name="rectAnimation"
Stroke="Black"
Width="50" />
</Canvas>
</Grid>
Aus meinem code hinter, ich kann das Rechteck verschoben aus seiner position zu einer Entfernung:
private void Button1Click(object sender, RoutedEventArgs e)
{
var trs = new TranslateTransform();
var anim3 = new DoubleAnimation(0, -200, TimeSpan.FromSeconds(2));
trs.BeginAnimation(TranslateTransform.XProperty, anim3);
trs.BeginAnimation(TranslateTransform.YProperty, anim3);
CanvasAnimation.RenderTransform = trs;
}
Ich würde gerne wissen, wie kann ich verschieben Sie das Rechteck von seiner position zu einer anderen position, die durch Koordinaten? Wie haben Sie das Rechteck verschieben, um die position der listbox oder textbox
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bitte beachten Sie, dass der folgende code setzt die Koordinaten für den button auf der Leinwand und auf dem Formular sind die gleichen. Dies ist nicht optimal, sollten Sie finden, eine bessere Lösung, wie wenn man den Knopf auf der Leinwand.
Sorry für die späte Antwort, aber es klingt wie Sie wollen eine Abhängigkeitseigenschaft.
Wird dies (sofort) legen Sie das Rechteck an der oberen und linken des mit Leinwand.