1

label よりも多くのプロパティが必要だったので、より多くのプロパティを保持するために自分用のカスタム ラベルを作成しようとしましたtag。次のように、Label クラスを継承する新しいクラスを生成しました。

public class BigLabel : Label
    {
        private int t;
        private string h;
        public int ST
        {
            get
            {
                return t;
            }
            set
            {
                t = value;
            }
        }
        public string HyperLink
        {
            get
            {
                return h;
            }
            set
            {
                h = value;
            }
        }
    }

ただし、これを my で使用するとMainWindow.xaml.cs、 BigLabel lb = new BigLabel();
lb.ClickLabel クラスを継承した後、ここにイベントが表示されません。何か間違えている?

4

1 に答える 1

2

これは、クラスにイベントLabelがないためです。Clickとにかく、これを追加する方法は次のとおりです。

public static RoutedEvent ClickEvent;         

static BigLabel()    
{    
    ClickEvent = ButtonBase.ClickEvent.AddOwner(typeof(BigLabel));    
}    

public event RoutedEventHandler Click    
{    
    add { AddHandler(ClickEvent, value); }    
    remove { RemoveHandler(ClickEvent, value); }    
}

そして、次のイベントを発生させる必要がありますMouseUp

RaiseEvent(new RoutedEventArgs(ClickEvent, this));
于 2012-04-04T10:23:35.533 に答える