3

多くのオブジェクトで再利用できるoneventアクションを作成しようとしています。これを実現するために、ターゲットオブジェクトの名前をTagプロパティに保存しています。したがって、イベントでこれがトリガーされます。

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);
}

明らかに(ボタンとして送信)を使用します。オブジェクトの名前としてのタグは機能しません。では、タグプロパティをターゲットオブジェクトの参照として機能するように変換するにはどうすればよいですか?

これはWPFであることに注意してください

ありがとう

4

2 に答える 2

1

WPFの場合は、FindNameを使用します。

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

WinFormsの場合、タグに格納されている名前でコントロールを見つけることができます。

           

var aoControls = this.Controls.Find((string)(sender as Button).Tag, true);
if ((aoControls != null) && (aoControls.Length != 0))
{
    (Rectangle)aoControls[0].BeginAnimation...
}
于 2012-08-09T15:35:39.333 に答える
0

あなたは言及していますかUIElement.BeginAnimation、そしてその送信者はどんな人でもかまいませんUIElementか?もしそうなら、あなたは簡単に行うことができます:

((UiElement)sender).BeginAnimation(Button.WidthProperty, ShowButton);
于 2012-08-09T15:52:07.330 に答える