Ejemplo n.º 1
0
        protected override DataTemplate SelectTemplateCore(object item,
                                                           DependencyObject container)
        {
            var feedItem = item as RecentActivityEntity.Feed;

            if (feedItem == null)
            {
                return(null);
            }
            var uiElement = container as UIElement;

            switch (feedItem.StoryType)
            {
            case "STORE_PROMO":
#if !WINDOWS_PHONE_APP
                VariableSizedWrapGrid.SetRowSpan(uiElement, 2);
                VariableSizedWrapGrid.SetColumnSpan(uiElement, 1);
                    #endif
                return(StoreActivityDataTemplate);

            default:
#if !WINDOWS_PHONE_APP
                VariableSizedWrapGrid.SetRowSpan(uiElement, 1);
                VariableSizedWrapGrid.SetColumnSpan(uiElement, 1);
                    #endif
                return(ActivityDataTemplate);
            }
        }
Ejemplo n.º 2
0
        protected override void PrepareContainerForItemOverride(Windows.UI.Xaml.DependencyObject element, object item)
        {
            base.PrepareContainerForItemOverride(element, item);
            DataItem dataItem = item as DataItem;
            int      index    = -1;

            if (dataItem != null)
            {
                index = dataItem.Group.Items.IndexOf(dataItem);
            }

            if (index >= 0 && index < _sequence.Count)
            {
                colVal = (int)_sequence[index].Width;
                rowVal = (int)_sequence[index].Height;
            }
            else
            {
                colVal = (int)LayoutSizes.OtherSmallItem.Width;
                rowVal = (int)LayoutSizes.OtherSmallItem.Height;
            }

            VariableSizedWrapGrid.SetRowSpan(element as UIElement, rowVal);
            VariableSizedWrapGrid.SetColumnSpan(element as UIElement, colVal);
        }
Ejemplo n.º 3
0
        public void ResizeComponent(object target, int columnSpan, int rowSpan)
        {
            // make sure in configuration mode
            if (configurationMode)
            {
                // get container
                var item      = ContainerFromItem(target) as FrameworkElement;
                var container = item.FindParent <VariableSizedWrapGrid>();

                if (container != null)
                {
                    try
                    {
                        // update data context
                        dynamic data = item.DataContext;
                        data.RowSpan    = rowSpan;
                        data.ColumnSpan = columnSpan;

                        // update visual
                        VariableSizedWrapGrid.SetColumnSpan(item, columnSpan);
                        VariableSizedWrapGrid.SetRowSpan(item, rowSpan);
                        container.InvalidateMeasure();
                    }
                    catch (Exception)
                    {
                        // do nothing
                    }
                }
            }
        }
Ejemplo n.º 4
0
        protected override void PrepareContainerForItemOverride(DependencyObject element, object item)
        {
            var dataItem = item as VariableSizedGridViewItem;

            if (dataItem == null)
            {
                throw new ArgumentException("Items for VariableSizedGridView have to inherit from VariableSizedGridViewItem");
            }

            var gridViewItem = element as GridViewItem;

            if (gridViewItem != null)
            {
                if (dataItem.ColumnSpan > 0)
                {
                    VariableSizedWrapGrid.SetColumnSpan(gridViewItem, dataItem.ColumnSpan);
                }
                if (dataItem.RowSpan > 0)
                {
                    VariableSizedWrapGrid.SetRowSpan(gridViewItem, dataItem.RowSpan);
                }
            }

            base.PrepareContainerForItemOverride(element, item);
        }
        public MainPage()
        {
            this.InitializeComponent();

            // Yep: that's all.
            VariableSizedWrapGrid.RegisterImplicitAnimations();
        }
Ejemplo n.º 6
0
        /// <inheritdoc/>
        protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
        {
            var widget    = item as OpenHABWidget;
            var uiElement = container as UIElement;

            if (widget == null)
            {
                return(null);
            }

            var itemType = GetItemViewType(widget);

            switch (itemType)
            {
            case "group":
                return(PageLinkTemplate);

            case "frame":
                VariableSizedWrapGrid.SetRowSpan(uiElement, widget.Children.Count + 1);
                return(FrameTemplate);

            case "switch":
                return(SwitchTemplate);

            case "rollershutter":
                return(RollershutterTemplate);

            case "slider":
                return(SliderTemplate);

            case "datetime":
            case "text":
                return(TextTemplate);

            //case "color":
            //    return ColorTemplate;
            case "image":
                return(ImageTemplate);

            case "setpoint":
                return(SetpointTemplate);

            case "selection":
                return(SelectionTemplate);

            case "sectionswitch":
                return(SectionSwitchTemplate);

            case "video_mjpeg":
            case "video":
                return(MjpegTemplate);

            case "chart":
                return(ChartTemplate);

            default:
                return(FrameTemplate);
            }
        }
Ejemplo n.º 7
0
        private VariableSizedWrapGrid CreateWrapGrid()
        {
            VariableSizedWrapGrid wrapGrid = new VariableSizedWrapGrid();

            wrapGrid.Orientation         = Orientation.Vertical;
            wrapGrid.ItemWidth           = 9999;
            wrapGrid.HorizontalAlignment = HorizontalAlignment.Stretch;

            return(wrapGrid);
        }
Ejemplo n.º 8
0
        //    //if (e.NavigationMode != NavigationMode.Back)
        //    //{
        //    //var filtro = from a in data.Images
        //    //             where a.IsAlbum
        //    //             select a;
        //    await UpdateMainList(0,0);
        //    parent = e.Parameter as MainPage;
        //    //}
        //    //else
        //    //{
        //    if (last != null)
        //        mailList.ScrollIntoView(last);
        //    //}
        //    topics = await App.ServiceClient.GetTopics();
        //    topics.Insert(0, new Topic(immagini[0].ID,"Most Viral", "Today's most popular posts"));
        //    int i = 0;
        //    foreach (Topic t in topics)
        //    {
        //        t.index = i;
        //        if (i != 0)
        //        t.selected = Visibility.Collapsed;
        //        i++;
        //    }
        //    topicGrid.ItemsSource = topics;
        //    base.OnNavigatedTo(e);
        //}
        //bool open;
        //public void ShowTopicsGrid()
        //{
        //    if (open)
        //        HideTopics.Begin();
        //    else
        //        ShowTopics.Begin();
        //    open = !open;
        //}

        //public async System.Threading.Tasks.Task UpdateMainList(ImgurGallerySection section, ImgurGallerySort sort)
        //{
        //    ImgurImageData data = await App.ServiceClient.GetMainGalleryImages(section, sort, 0);
        //    if (Extensions.GetLocalSettingsValue<string>("nsfw") == "hide")
        //        data.Images.RemoveAll(x => x.nsfw);
        //    immagini = data.Images.ToList();
        //    foreach (ImgurImage ii in immagini)
        //    {

        //        ii.Width = Convert.ToInt16(Window.Current.Bounds.Width / 2);
        //        if (ii.Width > 200)
        //            ii.Width = 200;
        //    }
        //    mailList.ItemsSource = immagini;
        //}

        //public object last;
        //private void mailList_SelectionChanged(object sender, SelectionChangedEventArgs e)
        //{
        //    last = sender;
        //    Frame.Navigate(typeof(PostDetail), new ArrayList() { immagini, mailList.SelectedIndex, parent });
        //}

        private void mailList_SizeChanged(object sender, SizeChangedEventArgs e)
        {
            VariableSizedWrapGrid appItemsPanel = (VariableSizedWrapGrid)(sender as GridView).ItemsPanelRoot;

            double optimizedWidth = 200;
            double margin         = 0.0;
            var    number         = (int)e.NewSize.Width / (int)optimizedWidth;

            appItemsPanel.ItemWidth = (e.NewSize.Width - margin) / (double)number;
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Standart constructor
        /// </summary>
        /// <param name="areaId">ID of parent area</param>
        /// <param name="mainGridPanel">Owner panel</param>
        public PersonalEventCreateViewModel(string areaId, VariableSizedWrapGrid mainGridPanel)
        {
            CurrentMapEvent = new MapEvent(areaId);
            StartDate       = DateTime.Now;

            MinDate     = DateTime.Today;
            IsNotAllDay = false;

            BindingObjectIndex = 0;

            MainGridPanel = mainGridPanel;
        }
Ejemplo n.º 10
0
        private void AddWrapGrid(List <Type> subTypes)
        {
            VariableSizedWrapGrid wrapGrid = CreateWrapGrid();

            root.Children.Add(wrapGrid);

            foreach (Type type in subTypes)
            {
                Button button = CreateButton(type);
                wrapGrid.Children.Add(button);
            }
        }
Ejemplo n.º 11
0
        private void AddButtons()
        {
            // e.g. the WilliamWeillerEngineering Skoobot has "buttons" -- there are enums
            // defined for specific commands like forward and reverse. When buttonType is set to
            // "standard" then we add buttons for those specific commands.
            //OTHERWISE we just have the string command to send.
            if (NC?.UI?.buttonType != "standard")
            {
                return;
            }
            uiButtons.Children.Clear();

            // What's the name of the value?
            var parse = ValueParserSplit.ParseLine(NC.Type);

            if (parse.Count != 1)
            {
                return;                   // We can only do buttons when there is only one choice.
            }
            var value1 = parse[0];

            if (value1.ByteFormatPrimary != "U8")
            {
                return;                                   // can only handle enums for now
            }
            var name = value1.NamePrimary;

            // Get the corresponding enums
            if (!NC.EnumValues.ContainsKey(name))
            {
                return;                                   // no enums means no buttons.
            }
            var enums  = NC.EnumValues[name];
            var margin = new Thickness(2);

            foreach (var(enumName, enumValue) in enums)
            {
                var b = new Button()
                {
                    Content  = enumName,
                    Tag      = enumValue,
                    MinWidth = 120,
                    Margin   = margin,
                };
                b.Click += OnEnum_Click;
                uiButtons.Children.Add(b);
                if (enumName.Length >= 15)
                {
                    // Spill to two columns
                    VariableSizedWrapGrid.SetColumnSpan(b, 2);
                }
            }
        }
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);

            SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility =
                Frame.CanGoBack ? AppViewBackButtonVisibility.Visible :
                AppViewBackButtonVisibility.Collapsed;

            var r = new Random();

            Grid[] items =
                Enumerable.Range(0, 30).Select(i =>
            {
                byte[] colorBytes = new byte[3];
                r.NextBytes(colorBytes);
                var rect = new Rectangle
                {
                    Height = r.Next(40, 150),
                    Width  = r.Next(40, 150),
                    Fill   = new SolidColorBrush(new Color
                    {
                        R = colorBytes[0],
                        G = colorBytes[1],
                        B = colorBytes[2],
                        A = 255
                    })
                };
                var textBlock = new TextBlock
                {
                    Text = (i + 1).ToString(),
                    HorizontalAlignment = HorizontalAlignment.Center,
                    VerticalAlignment   = VerticalAlignment.Center
                };
                var grid = new Grid();
                grid.Children.Add(rect);
                grid.Children.Add(textBlock);
                return(grid);
            }).ToArray();

            foreach (var item in items)
            {
                grid1.Children.Add(item);
                Rectangle rect = item.Children.First() as Rectangle;
                if (rect.Width > 50)
                {
                    int columnSpan = ((int)rect.Width / 50) + 1;
                    VariableSizedWrapGrid.SetColumnSpan(item, columnSpan);
                    int rowSpan = ((int)rect.Height / 50) + 1;
                    VariableSizedWrapGrid.SetRowSpan(item, rowSpan);
                }
            }
        }
Ejemplo n.º 13
0
        protected override void PrepareContainerForItemOverride(Windows.UI.Xaml.DependencyObject element, object item)
        {
            ITileItem tile = item as ITileItem;

            if (tile != null)
            {
                GridViewItem griditem = element as GridViewItem;
                if (griditem != null)
                {
                    VariableSizedWrapGrid.SetColumnSpan(griditem, tile.ColumnSpan);
                    VariableSizedWrapGrid.SetRowSpan(griditem, tile.RowSpan);
                }
            }
            base.PrepareContainerForItemOverride(element, item);
        }
        protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
        {
            var dataItem  = item as VehicleSummaryData;
            var uiElement = container as UIElement;

            var isSmallRes = WindowHelper.IsSmallResolution();

            if (dataItem?.Index < 2 && !isSmallRes)
            {
                VariableSizedWrapGrid.SetRowSpan(uiElement, 2);
                return(MediumTemplate);
            }

            return(SmallTemplate);
        }
    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        Random r = new();

        Grid[] items =
            Enumerable.Range(0, 30).Select(i =>
        {
            byte[] colorBytes = new byte[3];
            r.NextBytes(colorBytes);
            Rectangle rect = new()
            {
                Height = r.Next(40, 150),
                Width  = r.Next(40, 150),
                Fill   = new SolidColorBrush(new Color
                {
                    R = colorBytes[0],
                    G = colorBytes[1],
                    B = colorBytes[2],
                    A = 255
                })
            };
            TextBlock textBlock = new()
            {
                Text = (i + 1).ToString(),
                HorizontalAlignment = HorizontalAlignment.Center,
                VerticalAlignment   = VerticalAlignment.Center
            };
            Grid grid = new();
            grid.Children.Add(rect);
            grid.Children.Add(textBlock);
            return(grid);
        }).ToArray();

        foreach (var item in items)
        {
            grid1.Children.Add(item);
            Rectangle?rect = item.Children.First() as Rectangle;
            if (rect is not null && rect.Width > 50)
            {
                int columnSpan = ((int)rect.Width / 50) + 1;
                VariableSizedWrapGrid.SetColumnSpan(item, columnSpan);
                int rowSpan = ((int)rect.Height / 50) + 1;
                VariableSizedWrapGrid.SetRowSpan(item, rowSpan);
            }
        }
        base.OnNavigatedTo(e);
    }
}
Ejemplo n.º 16
0
        // refresh the variablesizedwrapgrid layout
        public void Update()
        {
            if (!(this.ItemsPanelRoot is VariableSizedWrapGrid))
            {
                throw new ArgumentException("ItemsPanel is not VariableSizedWrapGrid");
            }

            foreach (var container in this.ItemsPanelRoot.Children.Cast <GridViewItem>())
            {
                dynamic data = container.Content;
                VariableSizedWrapGrid.SetRowSpan(container, data.RowSpan);
                VariableSizedWrapGrid.SetColumnSpan(container, data.ColSpan);
            }

            this.ItemsPanelRoot.InvalidateMeasure();
        }
        protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
        {
            var dataItem = item as VehicleSummaryData;

            var isSmallRes = WindowHelper.IsSmallResolution();

            if (isSmallRes)
            {
                return(dataItem?.Index < 2 ? SmallUnitsTemplate : SmallAbsoluteTemplate);
            }

            var uiElement = container as UIElement;

            VariableSizedWrapGrid.SetRowSpan(uiElement, 2);

            return(dataItem?.Index < 2 ? UnitsTemplate : AbsoluteTemplate);
        }
Ejemplo n.º 18
0
        protected override void PrepareContainerForItemOverride(DependencyObject element, object item)
        {
            var list     = this.ItemsSource as List <string>;
            var griditem = element as GridViewItem;

            for (var t = (list.Count - list.Count % 4); t < list.Count; t++)
            {
                if (item as string == list[t])
                {
                    if (griditem != null)
                    {
                        VariableSizedWrapGrid.SetColumnSpan(griditem, 2);
                    }
                }
            }
            base.PrepareContainerForItemOverride(element, item);
        }
Ejemplo n.º 19
0
        public void MenuFlyoutItem_ChangeSizeClick(object sender, RoutedEventArgs e)
        {
            var item = sender as MenuFlyoutItem;
            var size = item.Tag as string;

            switch (size)
            {
            case "small":
                VariableSizedWrapGrid.SetRowSpan(_eqLogicItemSelected, 1);
                VariableSizedWrapGrid.SetColumnSpan(_eqLogicItemSelected, 1);
                break;

            case "med":
                VariableSizedWrapGrid.SetRowSpan(_eqLogicItemSelected, 2);
                VariableSizedWrapGrid.SetColumnSpan(_eqLogicItemSelected, 2);
                break;

            case "wide":
                VariableSizedWrapGrid.SetRowSpan(_eqLogicItemSelected, 2);
                VariableSizedWrapGrid.SetColumnSpan(_eqLogicItemSelected, 4);
                break;

            case "extra-wide":
                VariableSizedWrapGrid.SetRowSpan(_eqLogicItemSelected, 4);
                VariableSizedWrapGrid.SetColumnSpan(_eqLogicItemSelected, 6);
                break;

            case "large":
                VariableSizedWrapGrid.SetRowSpan(_eqLogicItemSelected, 4);
                VariableSizedWrapGrid.SetColumnSpan(_eqLogicItemSelected, 4);
                break;

            case "extra-large":
                VariableSizedWrapGrid.SetRowSpan(_eqLogicItemSelected, 6);
                VariableSizedWrapGrid.SetColumnSpan(_eqLogicItemSelected, 6);
                break;

            default:
                break;
            }
            // Recharge la disposition de la WrapGrid
            VariableSizedWrapGrid vswGrid = VisualTreeHelper.GetParent(_eqLogicItemSelected) as VariableSizedWrapGrid;

            vswGrid.InvalidateMeasure();
        }
        // refresh the variablesizedwrapgrid layout
        private void Update()
        {
            if (!(this.ItemsPanelRoot is VariableSizedWrapGrid))
            {
                throw new ArgumentException("ItemsPanel is not VariableSizedWrapGrid");
            }

            int itemIndex = 0;

            foreach (var container in this.ItemsPanelRoot.Children.Cast <GridViewItem>( ))
            {
                int rowSpan = GetRowSpanByColumnCountAndIndex(_columnCount, itemIndex);
                VariableSizedWrapGrid.SetRowSpan(container, rowSpan);
                itemIndex++;
            }

            this.ItemsPanelRoot.InvalidateMeasure( );
        }
Ejemplo n.º 21
0
        /// <summary>
        /// Adjusts the size of <paramref name="item"/> based on how large it will be to fit
        /// the given <paramref name="str"/> within itself.
        /// </summary>
        /// <param name="item"></param>
        /// <param name="str"></param>
        public static void SizeFromProtectedString(DependencyObject item, IProtectedString str)
        {
            // Find the parent Border within the item
            Border templateBorder = item.FindDescendantByType <Border>();

            if (templateBorder == null)
            {
                item.SetValue(VariableSizedWrapGrid.ColumnSpanProperty, 4);

                if (!str.Protected && str.ClearValue.Contains("\n"))
                {
                    item.SetValue(VariableSizedWrapGrid.RowSpanProperty, 4);
                }
                else
                {
                    item.SetValue(VariableSizedWrapGrid.RowSpanProperty, 2);
                }
            }
            else
            {
                templateBorder.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));

                TextBlock headerBlock = templateBorder.FindDescendantByType <TextBlock>();
                headerBlock.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));

                ProtectedTextBox contentBox = templateBorder.FindDescendantByType <ProtectedTextBox>();
                contentBox.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));

                // As a hack I add 5px to the desiredWidth to bump it up if necessary...
                double desiredWidth  = Math.Max(headerBlock.DesiredSize.Width, contentBox.DesiredSize.Width) + 5;
                double desiredHeight = headerBlock.DesiredSize.Height + contentBox.DesiredSize.Height;

                VariableSizedWrapGrid vswg = VisualTreeHelper.GetParent(item) as VariableSizedWrapGrid;

                int columns = (int)Math.Ceiling(desiredWidth / vswg.ItemWidth);
                columns = Math.Max(Math.Min(columns, 5), 1);
                item.SetValue(VariableSizedWrapGrid.ColumnSpanProperty, columns);

                int rows = (int)Math.Ceiling(desiredHeight / vswg.ItemHeight);
                rows = Math.Max(Math.Min(rows, 7), 1);
                item.SetValue(VariableSizedWrapGrid.RowSpanProperty, rows);
            }
        }
Ejemplo n.º 22
0
        protected override void PrepareContainerForItemOverride(DependencyObject element, object item)
        {
            base.PrepareContainerForItemOverride(element, item);
            var dataItem = item as ProductViewModel;

            if (dataItem != null && dataItem.ItemPosition == 0)
            {
                _colVal = (int)LayoutSizes.PrimaryItem.Width;
                _rowVal = (int)LayoutSizes.PrimaryItem.Height;
            }
            else
            {
                _colVal = (int)LayoutSizes.SecondaryItem.Width;
                _rowVal = (int)LayoutSizes.SecondaryItem.Height;
            }

            var uiElement = element as UIElement;

            VariableSizedWrapGrid.SetRowSpan(uiElement, _rowVal);
            VariableSizedWrapGrid.SetColumnSpan(uiElement, _colVal);
        }
        protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
        {
            var dataItem  = item as Driver;
            var uiElement = container as UIElement;

            var isSmallRes = WindowHelper.IsSmallResolution();

            if (dataItem?.Index == 0)
            {
                VariableSizedWrapGrid.SetRowSpan(uiElement, isSmallRes ? 2 :  3);
                return(isSmallRes ? MediumTemplate : LongTemplate);
            }

            if (dataItem?.Index < 4)
            {
                VariableSizedWrapGrid.SetRowSpan(uiElement, isSmallRes ? 1 : 2);
                return(isSmallRes ? SmallTemplate : MediumTemplate);
            }

            return(SmallTemplate);
        }
Ejemplo n.º 24
0
        protected override void PrepareContainerForItemOverride(DependencyObject element, object item)
        {
            //var viewModel = item as IResizable;
            if (!PlatformIndependent.IsWindowsPhoneDevice)
            {
                var gridviewItem = element as GridViewItem;
                if (ResizeableItem != null)
                {
                    element.SetValue(VariableSizedWrapGrid.ColumnSpanProperty, ResizeableItem.Items[this.Items.IndexOf(item)].Width);
                    element.SetValue(VariableSizedWrapGrid.RowSpanProperty, ResizeableItem.Items[this.Items.IndexOf(item)].Height);
                    if (this.ItemsPanelRoot != null)
                    {
                        VariableSizedWrapGrid wrapgrid = this.ItemsPanelRoot as VariableSizedWrapGrid;
                        wrapgrid.MaximumRowsOrColumns = this.ResizeableItem.Columns;
                        wrapgrid.ItemHeight           = wrapgrid.ItemWidth = this.ResizeableItem.ItemWidth;
                        wrapgrid.Width = this.ResizeableItem.ItemWidth * this.ResizeableItem.Columns;
                    }
                }
            }

            base.PrepareContainerForItemOverride(element, item);
        }
Ejemplo n.º 25
0
        protected async override void OnNavigatedTo(NavigationEventArgs e)
        {
            if (e.Parameter is API.ItemsGetterUtil.Image)
            {
                this.Source = (API.ItemsGetterUtil.Image)e.Parameter;
                this.Info   = await API.ItemInfo.Fetch(this.Source, app.Settings.Instance.APIProvider);

                var bi = new Windows.UI.Xaml.Media.Imaging.BitmapImage();
                bi.UriSource             = new Uri(app.Settings.Instance.APIProvider.Image + this.Source.ImagePath, UriKind.Absolute);
                this.CurrentImage.Source = bi;

                foreach (var it in this.Info.Tags)
                {
                    var tag = new Controls.Tag(it);
                    tag.Margin = new Thickness(5, 2, 5, 2);
                    this.TagList.Children.Add(tag);

                    double tagWidth = tag.ElementWidth + tag.Margin.Left + tag.Margin.Right;
                    VariableSizedWrapGrid.SetColumnSpan(tag, (int)tagWidth / 10 + 1);
                }

                this.LabelVotes.Text     = (this.Source.Up - this.Source.Down).ToString();
                this.LabelVotesUp.Text   = "up: " + this.Source.Up;
                this.LabelVotesDown.Text = "down: " + this.Source.Down;
                this.AuthorButton.Text   = this.Source.User;
                this.AuthorRank.Fill     = this.Source.UserMark.Color;


                foreach (var it in this.Info.Comments)
                {
                    this.CommentsStackPanel.Children.Add(new Controls.UserComment(it));
                }
            }
            else
            {
                throw new Exception("Invalid Parameter provided");
            }
        }
Ejemplo n.º 26
0
 private static void OnResizeableItemChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
 {
     if (!PlatformIndependent.IsWindowsPhoneDevice)
     {
         var gridview = d as VariableSizedGridView;
         if (gridview.ItemsPanelRoot != null && gridview.ResizeableItem != null)
         {
             VariableSizedWrapGrid wrapgrid = gridview.ItemsPanelRoot as VariableSizedWrapGrid;
             wrapgrid.MaximumRowsOrColumns = gridview.ResizeableItem.Columns;
             wrapgrid.ItemHeight           = wrapgrid.ItemWidth = gridview.ResizeableItem.ItemWidth;
             wrapgrid.Width = gridview.ResizeableItem.ItemWidth * gridview.ResizeableItem.Columns;
             for (int i = 0; i < gridview.Items.Count; i++)
             {
                 var gridviewItem = gridview.ContainerFromItem(gridview.Items[i]) as GridViewItem;
                 if (gridviewItem != null)
                 {
                     gridviewItem.SetValue(VariableSizedWrapGrid.ColumnSpanProperty, gridview.ResizeableItem.Items[i].Width);
                     gridviewItem.SetValue(VariableSizedWrapGrid.RowSpanProperty, gridview.ResizeableItem.Items[i].Height);
                 }
             }
             // wrapgrid.UpdateLayout();
         }
     }
 }
        /// <summary>
        /// Processes group of items (actually selected or deselected), updates row/col spans and put the items into specific states
        /// </summary>
        private void ProcessItemsCollection(IList <object> items, GridView gridView, string newStateName, int rowSpan, int colSpan)
        {
            VariableSizedWrapGrid vswGrid = null;

            foreach (object item in items)
            {
                GridViewItem gridViewItem = gridView.ItemContainerGenerator.ContainerFromItem(item) as GridViewItem;
                if (gridViewItem != null)
                {
                    VariableSizedWrapGrid.SetRowSpan(gridViewItem, rowSpan);
                    VariableSizedWrapGrid.SetColumnSpan(gridViewItem, colSpan);

                    // Update visual state
                    if (newStateName != null && this.TemplateRootElementName != null)
                    {
                        DependencyObject descendant = VisualTreeEnumerator.FindDescendantByName(gridViewItem, this.TemplateRootElementName, false);

                        if (descendant != null)
                        {
                            ExtendedVisualStateManager.GoToElementState(descendant as Grid, newStateName, true);
                        }
                    }

                    if (vswGrid == null)
                    {
                        vswGrid = VisualTreeHelper.GetParent(gridViewItem) as VariableSizedWrapGrid;
                    }
                }
            }

            // Update panel if some of items were updated
            if (vswGrid != null)
            {
                vswGrid.InvalidateMeasure();
            }
        }
Ejemplo n.º 28
0
        /// <summary>
        /// Set up the uiUI list based on the UIList of SimpleUI
        /// </summary>
        private void SetupUI()
        {
            Panel panel = uiUI;

            panel.Children.Clear();
            Stack <Panel> stack = new Stack <Panel>();
            var           SPACE = new char[] { ' ' };

            if (NC == null || NC.UIList == null)
            {
                return;
            }

            foreach (var simple in NC.UIList)
            {
                // Find the target
                Command command = null;
                var     tlist   = string.IsNullOrEmpty(simple.Target) ? new string[] { "" } : simple.Target.Split(SPACE);
                NC.Commands.TryGetValue(tlist[0], out command);


                switch (simple.UIType)
                {
                default:
                    Console.WriteLine($"ERROR: unknown UIType {simple.UIType} for {NC.Name}");
                    break;

                case "Blank":
                {
                    var tb = new TextBlock()
                    {
                        Text = ""
                    };
                    panel.Children.Add(tb);
                }
                break;

                case "ButtonFor":
                {
                    var b = new Button()
                    {
                        Content  = simple.Label ?? command?.Label,
                        Tag      = simple,
                        MinWidth = ElementMinWidth,
                        Margin   = ElementMargin,
                    };
                    b.Click += B_Click;
                    panel.Children.Add(b);
                }
                break;

                case "ComboBoxFor":
                {
                    var param = command?.Parameters[tlist[1]];
                    var cb    = new ComboBox()
                    {
                        Header   = simple.Label ?? command?.Label,
                        MinWidth = ElementMinWidth,
                        Tag      = simple,
                    };
                    ComboBoxItem selected = null;
                    foreach (var(name, value) in param.ValueNames)
                    {
                        var cbi = new ComboBoxItem()
                        {
                            Content = name,
                            Tag     = (simple, param, name, value)
                        };
                        if (value == param.Init)
                        {
                            selected = cbi;
                        }
                        cb.Items.Add(cbi);
                    }
                    cb.SelectionChanged += Cb_SelectionChanged;
                    panel.Children.Add(cb);
                }
                break;

                case "RadioFor":
                {
                    var param = command?.Parameters[tlist[1]];
                    var sp    = new StackPanel();
                    foreach (var(name, value) in param.ValueNames)
                    {
                        var rb = new RadioButton()
                        {
                            Content = name,
                            Tag     = (simple, param, name, value)
                        };
                        if (value == param.Init)
                        {
                            rb.IsChecked = true;
                        }
                        rb.Checked += Rb_Checked;
                        sp.Children.Add(rb);
                    }
                    panel.Children.Add(sp);
                }
                break;

                case "RowEnd":
                    panel = stack.Pop();
                    break;

                case "RowStart":
                {
                    var n    = simple.GetN();
                    var grid = new VariableSizedWrapGrid()
                    {
                        Orientation          = Orientation.Horizontal,
                        MaximumRowsOrColumns = n,
                    };
                    panel.Children.Add(grid);
                    stack.Push(panel);
                    panel = grid;
                }
                break;

                case "SliderFor":
                {
                    var param = command?.Parameters[tlist[1]];
                    var s     = new Slider()
                    {
                        Width   = ElementMinWidth,
                        Header  = simple.Label ?? param.Label,
                        Minimum = param.Min,
                        Maximum = param.Max,
                        Value   = param.Init,
                        Tag     = simple,
                        Margin  = ElementMargin
                    };
                    s.ValueChanged += S_ValueChanged;
                    panel.Children.Add(s);
                }
                break;
                }
            }
        }
Ejemplo n.º 29
0
 public static void SetSize(UIElement element, Size size)
 {
     VariableSizedWrapGrid.SetColumnSpan(element, (int)size.Width);
     VariableSizedWrapGrid.SetRowSpan(element, (int)size.Height);
 }
Ejemplo n.º 30
0
        protected override DataTemplate SelectTemplateCore(object item,
                                                           DependencyObject container)
        {
            var feedItem = item as Feed;

            if (feedItem == null)
            {
                return(null);
            }

            var uiElement = container as UIElement;

            if (feedItem.IsNextButton)
            {
                VariableSizedWrapGrid.SetRowSpan(uiElement, 1);
                VariableSizedWrapGrid.SetColumnSpan(uiElement, 1);
                return(LoadMoreActivityDataTemplate);
            }
            if (feedItem.IsPreviousButton && feedItem.IsReloadButton)
            {
                VariableSizedWrapGrid.SetRowSpan(uiElement, 1);
                VariableSizedWrapGrid.SetColumnSpan(uiElement, 1);
                return(ReloadActivityDataTemplate);
            }
            if (feedItem.IsPreviousButton)
            {
                VariableSizedWrapGrid.SetRowSpan(uiElement, 1);
                VariableSizedWrapGrid.SetColumnSpan(uiElement, 1);
                return(PreviousActivityDataTemplate);
            }
            switch (feedItem.StoryType)
            {
            case "PROFILE_PIC":
                VariableSizedWrapGrid.SetRowSpan(uiElement, 1);
                VariableSizedWrapGrid.SetColumnSpan(uiElement, 1);
                return(ProfilePicDataTemplate);

            case "BROADCASTING":
                VariableSizedWrapGrid.SetRowSpan(uiElement, 2);
                VariableSizedWrapGrid.SetColumnSpan(uiElement, 1);
                return(BroadcastDataTemplate);

            case "TROPHY":
                if (feedItem.CondensedStories != null)
                {
                    VariableSizedWrapGrid.SetRowSpan(uiElement, 2);
                    VariableSizedWrapGrid.SetColumnSpan(uiElement, 1);
                    return(MultipleTrophyActivityDataTemplate);
                }
                else
                {
                    VariableSizedWrapGrid.SetRowSpan(uiElement, 2);
                    VariableSizedWrapGrid.SetColumnSpan(uiElement, 1);
                    return(TrophyActivityDataTemplate);
                }

            case "STORE_PROMO":
                VariableSizedWrapGrid.SetRowSpan(uiElement, 2);
                VariableSizedWrapGrid.SetColumnSpan(uiElement, 1);
                return(StoreActivityDataTemplate);

            case "FRIENDED":
                VariableSizedWrapGrid.SetRowSpan(uiElement, 1);
                VariableSizedWrapGrid.SetColumnSpan(uiElement, 1);
                return(FriendedActivityDataTemplate);

            case "PLAYED_GAME":
                if (feedItem.CondensedStories != null)
                {
                    VariableSizedWrapGrid.SetRowSpan(uiElement, 2);
                    VariableSizedWrapGrid.SetColumnSpan(uiElement, 1);
                    return(MultiplePeoplePlayActivityDataTemplate);
                }
                else
                {
                    VariableSizedWrapGrid.SetRowSpan(uiElement, 1);
                    VariableSizedWrapGrid.SetColumnSpan(uiElement, 1);
                    return(PlayedGameActivityDataTemplate);
                }

            case "RATED":
                if (feedItem.CondensedStories != null)
                {
                    VariableSizedWrapGrid.SetRowSpan(uiElement, 2);
                    VariableSizedWrapGrid.SetColumnSpan(uiElement, 1);
                    return(MultiplePeoplePlayActivityDataTemplate);
                }
                else
                {
                    VariableSizedWrapGrid.SetRowSpan(uiElement, 1);
                    VariableSizedWrapGrid.SetColumnSpan(uiElement, 1);
                    return(PlayedGameActivityDataTemplate);
                }

            default:
                if (feedItem.CondensedStories != null)
                {
                    VariableSizedWrapGrid.SetRowSpan(uiElement, 2);
                    VariableSizedWrapGrid.SetColumnSpan(uiElement, 1);
                    return(MultiplePeoplePlayActivityDataTemplate);
                }
                else
                {
                    VariableSizedWrapGrid.SetRowSpan(uiElement, 1);
                    VariableSizedWrapGrid.SetColumnSpan(uiElement, 1);
                    return(PlayedGameActivityDataTemplate);
                }
            }
        }