3 Stimmen

Tag-Eigenschaft als Zielobjekt verwenden c#

Ich versuche, eine On-Event-Aktion zu erstellen, die für eine Reihe von Objekten wiederverwendet werden kann. Um dies zu erreichen, speichere ich den Namen des Zielobjekts in der Eigenschaft Tag. Bei einem Ereignis wird dies also ausgelöst:

private void ShowDeleteButton(object sender, System.Windows.Input.MouseEventArgs e)
{
    Duration TimeToTake = new Duration(new TimeSpan(0,0,0,0,300));
    DoubleAnimation ShowButton = new DoubleAnimation(0, 104, TimeToTake);
    DoubleAnimation HideButton = new DoubleAnimation(104, 0, TimeToTake);
    (sender as Rectangle).Tag.BeginAnimation(Button.WidthProperty, ShowButton);
}

Offensichtlich mit (Absender als Schaltfläche).Tag als Name für das Objekt wird nicht funktionieren. Wie kann ich also die Tag-Eigenschaft konvertieren, um als Referenz für das Zielobjekt zu arbeiten?

Hinweis: Dies ist WPF

Gracias

1voto

competent_tech Punkte 43546

Für WPF, verwenden Sie FindName :

var oControl = this.FindName((string)(sender as Button).Tag);
if (oControl != null)
{
    (Rectangle)oControl.BeginAnimation...
}

Bei WinForms können Sie das Steuerelement anhand des Namens finden, der im Tag gespeichert ist:

var aoControls = this.Controls.Find((string)(sender as Button).Tag, true);
if ((aoControls != null) && (aoControls.Length != 0))
{
    (Rectangle)aoControls[0].BeginAnimation...
}

0voto

ekholm Punkte 2543

Beziehen Sie sich auf UIElement.BeginAnimation und dieser Absender kann jeder sein UIElement ? Wenn ja, dann könnten Sie das einfach tun:

((UiElement)sender).BeginAnimation(Button.WidthProperty, ShowButton);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X