簡體   English   中英

Xamarin 將圖像添加到 StackLayout OnChange

[英]Xamarin Add Image to StackLayout OnChange

我有個問題。 我有一個 TabbedPage,帶有 page1 和 page2。 在 page2 上是一個帶有一些圖像的網格。 當我單擊圖像時,我將圖像添加到集合中,因此我在第 1 頁上使用了 OnChange。 在第 1 頁上,我想將新圖像添加到該頁面上的 StackLayout。

到目前為止,這是我的代碼: 這是 page2 代碼:

private void LoadTemplateList()
{
    string[] imageArray = { "Good_Question.png", "Excuse_Me.png"};
    int imageIndex = 0;
    for (var i = 0; i <= TemplateGrid.RowDefinitions.Count; i++)
    {
        if (i == 2)
        {
            for (var j = 0; j < TemplateGrid.ColumnDefinitions.Count; j++)
            {
                if (j == 1 || j == 3)
                {
                    Image image = new Image { Source = imageArray[imageIndex], VerticalOptions = LayoutOptions.StartAndExpand };

                    var SelectImage = new TapGestureRecognizer();
                    SelectImage.Tapped += AddImageToCollection(image);
                    image.GestureRecognizers.Add(SelectImage);

                    TemplateGrid.Children.Add(image,j,i);
                    imageIndex++;
                }
            }
        }
    }
}

private EventHandler AddImageToCollection(Image image)
{
    HomePage.SelectedImageCollection.Add(image);
    return null;
}

但是當我單擊圖像時 GestureRecognizer 似乎不起作用...

我究竟做錯了什么?

我認為您希望在第 1 頁中收到有關添加新圖像的通知。

如果是這種情況,您必須向 HomePage.SelectedImageCollection.CollectionChanged 添加一個事件處理程序,因此:

public MemeBuilder()
{
   InitializeComponent();

   SizeChanged += (s, a) =>
   {
       myLayout.HeightRequest = this.Width;
       myLayout.WidthRequest = this.Width;
   };

   HomePage.SelectedImageCollection.CollectionChanged += AddImageToPreview;
}

private void AddImageToPreview(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
           if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add)
           {
               var image = (Image)e.NewItems[e.NewItems.Count - 1];
           }
   ....
}

暫無
暫無

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

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