簡體   English   中英

如何為動態創建的TextBlock提供tap(或tapped)事件

[英]How to give tap (or tapped) event to dynamically created TextBlock

public void myTextBlock1_Tap(object sender, System.Windows.Input.GestureEventArgs e)
    {

        StackPanel mystack = new StackPanel() { Height = 100, Width = 200 };
        TextBlock myTextBlock1 = new TextBlock() 
            { Text = "Text Block", Width = 350, Height = 40, FontSize = 20,
              VerticalAlignment = VerticalAlignment.Center, 
              TextAlignment = TextAlignment.Center, 
              HorizontalAlignment = HorizontalAlignment.Center, };
        mystack.Children.Add(myTextBlock1);
    }


for (int r = 0; r < m; r++)
        {
            TextBlock myTextBlockr = new TextBlock() 
                { Text = "Text Block", Width = 350, Height = 40, FontSize = 20,
                  VerticalAlignment = VerticalAlignment.Center, 
                  TextAlignment = TextAlignment.Center, 
                  HorizontalAlignment = HorizontalAlignment.Center };

            if (r == 0)

            {
                myTextBlockr.Tap += new 
                   EventHandler<GestureEventArgs> (myTextBlock1_Tap);
            }
            stack1.Children.Add(myTextBlockr);
            myTextBlockr.Text = a[r];
        }

我想在創建文本塊時動態觸發事件。沒有生成錯誤但是點擊(或點擊UWP)事件不會觸發該功能。

public partial class MainPage : PhoneApplicationPage
    {
        // Constructor
        public MainPage()
        {
            int m = 3;
            InitializeComponent();
            for (int r = 0; r < m; r++)
            {
                TextBlock myTextBlock = new TextBlock()
                {
                    Text = "Text Block",
                    Width = 350,
                    Height = 40,
                    FontSize = 20,
                    VerticalAlignment = VerticalAlignment.Center,
                    TextAlignment = TextAlignment.Center,
                    HorizontalAlignment = HorizontalAlignment.Center
                };

                //If tap event required for all text box
                myTextBlock.Tap += myTextBlock1_Tap;

                //According to your code here you have triggered tap event 
                //only for the first textblock
                if (r == 0)
                {
                    myTextBlock.Tap += new
                       EventHandler<GestureEventArgs>(myTextBlock1_Tap);
                }
                // Adding to the parent Stackpanel

                stack1.Children.Add(myTextBlock);
                myTextBlock.Text = "My textblock "+r;
            }

        }
        public void myTextBlock1_Tap(object sender, System.Windows.Input.GestureEventArgs e)
        {
            StackPanel mystack = new StackPanel() { Height = 100, Width = 200 };
            TextBlock myTextBlock1 = new TextBlock()
            {
                Text = "Text Block",
                Width = 350,
                Height = 40,
                FontSize = 20,
                VerticalAlignment = VerticalAlignment.Center,
                TextAlignment = TextAlignment.Center,
                HorizontalAlignment = HorizontalAlignment.Center,
            };
            mystack.Children.Add(myTextBlock1);
            // Adding to the parent Stackpanel
            stack1.Children.Add(mystack);
        }
    }

此代碼正在運行,已執行並檢查相同

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM