次のコードでは、テキストブロックである子の名前またはテキストをクリックした境界線を取得しようとしていました。私の問題は、「eaclick.Handled = true;」がないことです。コードでは、「eaclick.Handled = true;」を追加してクリックされたものだけでなく、マウスがクリックする前に入力した境界線のすべての名前を表示し始めます。マウスが入力した最初の境界線をすべて表示します。すべてのマウス入力がスタックに保存されているように見えます。左マウスダウンをクリックすると、最後のマウス入力を取得する代わりにそのスタックが取得されます。修正または私が間違っていることは何ですか?
for (int i = 0; i < NumPages; i++)
{
Border borderaux = new Border();
borderaux.Name = Convert.ToString(i);
//borderaux.MouseEnter += borderaux_MouseEnter;
Border clicked;
borderaux.MouseEnter += (smouse, eamouse) =>
{
clicked = (Border)smouse;
clicked.Cursor = Cursors.Hand;
MouseLeftButtonDown += (sclick, eaclick) =>
{
if (eaclick.ClickCount == 1)
{
TextBlock opcao = (TextBlock)(clicked).Child;
//string opcao="";
MessageBox.Show("Pressed-->" + opcao.Text);
//MessageBox.Show("Pressed-->" + clicked.Name);
eaclick.Handled = true;
}
};