0

Rss リーダー アプリを作成していますが、gif に問題があります。

ImageConverter クラスを作成して gif を png に変換する方法を知っている人はいますか? コードでgifを変換することもできます。私のアプリは、フィードからすべてを取得し、最初にそれを list() に入れてから、(ユーザーが選択した方法で) リストボックスに入力するという方法で動作します。GIFは空白の画像を残します:(

したがって、基本的にコンバーターは、直接のデータストリームではなく、リンクで動作する必要があります。

データの更新方法に関するコードをいくつか追加します。

ObservableCollection<FeedItem> slika0; //where the feeditems from the selected category go 

    public ObservableCollection<FeedItem> Slika0
    {
        get { return slika0; }
        set
        {
            slika0 = value;
            OnPropertyChanged("Slika0");
        }
    }

    int broj_elemenata = 0;
    bool nema_elemenata = false;
    private void UpdateFeedList(string feedXML)
    {
        StringReader stringReader = new StringReader(feedXML);
        XmlReader xmlReader = XmlReader.Create(stringReader);
        SyndicationFeed feed = SyndicationFeed.Load(xmlReader);

        List<string> kategorije = new List<string>();
        foreach (SyndicationItem sitem in feed.Items)
        {
            foreach (SyndicationCategory sc in feed.Categories)
            {
                if (!kategorije.Contains(sc.Name))
                {
                    kategorije.Add(sc.Name);
                }
            }
        }

        FeedItem FeedItem = new FeedItem();
        Slika0 = new ObservableCollection<FeedItem>();
        //SyndicationCategory tražena_kat = new SyndicationCategory("Trendy");

        foreach (SyndicationItem item in feed.Items)
        {
            foreach (SyndicationCategory sc in item.Categories)
            {
                FeedItem.Content_List.Add(sc.Name);

                foreach (SyndicationElementExtension ext in item.ElementExtensions)
                {
                    XElement ele = ext.GetObject<XElement>();

                    if (ele.Name.LocalName == "encoded" && ele.Name.Namespace.ToString().Contains("content"))
                    {
                        FeedItem.Content_List.Add(item.Title.Text);
                        FeedItem.Content_List.Add(ele.Value);//takes the content of the feed
                    }
                }

                foreach (SyndicationLink link in item.Links)
                {

                    FeedItem.Content_List.Add(link.Uri.AbsoluteUri); //takes the links for  browsing and the image 

                }
            }
        }
        IsolatedStorageSettings.ApplicationSettings["ContentList"] = FeedItem.Content_List;

        Deployment.Current.Dispatcher.BeginInvoke(() =>
        {

            int i;
            int x = 0;

            Slika0.Clear();
            foreach (var item in FeedItem.Content_List)
            {
                i = FeedItem.Content_List.IndexOf(item, x); //x = index of category in the list

                if (item == "Trendy")
                {
                    FeedItem FF = new FeedItem();
                    FF.Post_text = FeedItem.Content_List[i + 1];//title of article
                    FF.Content_link = FeedItem.Content_List[i + 2];//content
                    FF.Post_link = FeedItem.Content_List[i + 3];//the location of link for browsing
                    FF.Post_slika = FeedItem.Content_List[i + 4]; //location of image link

                    if (FF.Post_slika == "") //if there is no link for picture code is executed
                    {
                        FF.Post_slika = "Slike/zimo_veliki_tile.png";
                    }

                    Slika0.Add(FF);
                    this.lsSlika_P.ItemsSource = Slika0; //take

                    x = i + 5;
                    broj_elemenata++;
                }
            }

            if (lsSlika_P.Items.Count <= 3)
            {
                scroll_panorama.VerticalScrollBarVisibility = ScrollBarVisibility.Disabled;
            }

            if (lsSlika_P.Items.Count == 0)
            {
                nema_elemenata = true;
            }
            else nema_elemenata = false;


        });
        pan_progres.Visibility = Visibility.Collapsed;//progress bar
    }
4

0 に答える 0