Rotator with sliding images

5 posts, 0 answers
  1. Chandrak
    Chandrak avatar
    12 posts
    Member since:
    Oct 2012

    Posted 22 Jul 2015 Link to this post

    Hi,

     I want to have rotator with sliding images (including animated GIFs) (like ticker - left to right rotation). Here is my scenario.

     (1) Receive continuous data from socket (no need to implement in sample code) in a thread. This thread in turn will add predefined images in the rotator based on data received. This means that this thread will keep on adding images to rotator 24X7 while rotator is rotating. 

    (2) Will any overflow occur in rotator as end number of images will be added during day? If there is limit, code should remove items from rotator if limit breach. 

    (3) I also want some label on top of each image where I can set some text.

     Can we add any control dynamically in rotator, and it rotate like ticker? If yes I need some sample code on that too please. 

     

    Best Regards

    Chandrak

  2. Hristo Merdjanov
    Admin
    Hristo Merdjanov avatar
    710 posts

    Posted 27 Jul 2015 Link to this post

    Hi Chandrak,

    Thank you for writing.

    RadRotator supports gif files and you can also add them at runtime by simply accessing RadRotator.Items collection. 

    In order to add a label for each image, you would need to create a RadLabelElement and add it to the Children collection of the RotatorElement. The code snippet below should position a label element in the middle of the image: 
    public Form1()
    {
        InitializeComponent();

        PopulateRotator();
         
        label.Text = "label";
        label.StretchHorizontally = false;
        label.StretchVertically = false;
        CalcLabelLocation();
        radRotator1.RotatorElement.Children.Add(label);
         
        radRotator1.SizeChanged += new EventHandler(radRotator1_SizeChanged);
          
        radRotator1.Start();
    }
      
    void radRotator1_SizeChanged(object sender, EventArgs e)
    {
        CalcLabelLocation();
    }
      
    private void CalcLabelLocation()
    {
       int x = radRotator1.Location.X + radRotator1.Width / 2 - label.Size.Width /2;
       int y = radRotator1.Location.Y + radRotator1.Height / 2 - label.Size.Height/2;
       label.Location= new Point(x, y);
    }

    As to your other question about the end number of images, I tested with 5000 and RadRotator performed as expected. However I am not sure how you are going to handle these requests, and memory within your whole application, you can check the following resource providing additional information: Memory Management in .NET

    I would also like to kindly ask you to restrain from posting the same question numerous times in order to avoid spamming the forums. Pick the correct product for your question and post in the appropriate forum.

    I hope this information helps. Should you have further questions please do not hesitate to write back.

    Regards,
    Hristo Merdjanov
    Telerik
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items
  3. UI for WinForms is Visual Studio 2017 Ready
  4. Chandrak
    Chandrak avatar
    12 posts
    Member since:
    Oct 2012

    Posted 27 Jul 2015 in reply to Hristo Merdjanov Link to this post

    Hi,

     First of all sorry for multiple same questions. My project deadline is near and I did not get answer in 1-2 days. I dont think that this is what I wanted (not tested but sure it wont satisfy my requirement). What I want is to have ticker effect (not just rotation one by one).

    This post is what I needed.

    http://www.telerik.com/forums/using-rotator-to-scroll-text

    Rotating-items.zip

    I have tried adding images and it works as expected.

    public Form1()
            {
                InitializeComponent();

                for (int i = 0; i < 20; i++)
                {
                    LightVisualElement li = new LightVisualElement();
                    li.Image = new Bitmap(Image.FromFile("C:\\cbaxi1.jpg"));
                    this.myNewsReader1.Items.Add(li);
                    this.myNewsReader1.Items.Add(new LightVisualElement() { Text = " | "});
                }

            } 

     

    Can you help me modify this one to add labels on top of images which I need to populate at run time. ​Also when user moves mouse over the control, it should pause and allow user to click on the image (with some unique value attached to every image) and cause one general click function to be executed where I can read which image (value of the image) was clicked.

    Also some mechanism to remove image after 100 image and label load in the control. Say when I add 101 image it should remove the first one.. so total image count stay at 100. All these operation needs to be done in a worker thread. Images and labels will also be added on the fly on demand.

    Your help is appreciated.

     

  5. Chandrak
    Chandrak avatar
    12 posts
    Member since:
    Oct 2012

    Posted 29 Jul 2015 Link to this post

    Did it myself... thanks anyways.

  6. Hristo Merdjanov
    Admin
    Hristo Merdjanov avatar
    710 posts

    Posted 29 Jul 2015 Link to this post

    Hi Chandrak,

    Thank you for writing back.

    If I understand correctly, you have managed to resolve your issue. 

    Please let me know if you need additional information or further assistance.

    Regards,
    Hristo Merdjanov
    Telerik
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items
Back to Top
UI for WinForms is Visual Studio 2017 Ready