Exemple #1
0
        public void horizontal_stack_panel_should_have_desired_size_with_columns_when_autoResize_is_true()
        {
            var stackPanel = new StackPanel(false) {AutoResize = true, Size = new Size(500, 25),Columns = 2};

            var child1 = new TextElement("someText 1") { Size = new Size(18, 100) };
            var child2 = new TextElement("someText 2") { Size = new Size(100, 100) };
            var child3 = new TextElement("someText 3") { Size = new Size(100, 100) };

            stackPanel.AddElement(child1);
            stackPanel.AddElement(child2);
            stackPanel.AddElement(child3);

            Assert.AreEqual(child2.Width + child3.Width, stackPanel.Width);
        }
Exemple #2
0
        public void horizontal_stack_panel_should_increase_width_for_children_if_need()
        {
            var stackPanel = new StackPanel(false);

            var child1 = new TextElement("someText 1") {Size = new Size(100, 75)};
            var child2 = new TextElement("someText 2") {Size = new Size(100, 75)};
            var child3 = new TextElement("someText 3") {Size = new Size(100, 75)};

            stackPanel.AddElement(child1);
            stackPanel.AddElement(child2);
            stackPanel.AddElement(child3);

            stackPanel.Size = new Size(100, 200);

            Assert.AreEqual(child1.Width + child2.Width + child3.Width, stackPanel.Size.Width);
        }
Exemple #3
0
        public ContactPage()
            : base("", str_Profile.Localize(), false)
        {
            ScreenRoutines.CursorWait();
            try
            {
                Control.ShadowedAnimationMode = Fleux.Controls.FleuxControl.ShadowedAnimationOptions.FromRight;

                theForm.Menu = null;
                Content.Size = new Size(Size.Width, Size.Height - 150);

                var appBar = new ApplicationBar
                                 {
                                     Size = new Size(Content.Size.Width, 48 + 2 * 10),
                                     Location = new Point(0, Content.Size.Height - 48 - 2 * 10)
                                 };
                appBar.AddButton(ResourceManager.Instance.GetBitmapFromEmbeddedResource(
                    (MetroTheme.PhoneBackgroundBrush == Color.White) ?
                        "ContactWidgets.Images.back-light.bmp" : "ContactWidgets.Images.back-dark.bmp"
                    ));
                appBar.AddButton(ResourceManager.Instance.GetBitmapFromEmbeddedResource(
                    (MetroTheme.PhoneBackgroundBrush == Color.White) ?
                        "ContactWidgets.Images.Edit-light.bmp" : "ContactWidgets.Images.Edit-dark.bmp"
                    ));
                appBar.ButtonTap += OnAppBarButtonTap;
                Content.AddElement(appBar.AnimateHorizontalEntrance(false));

                _stackPanel = new StackPanel { Size = new Size(Content.Size.Width - PaddingHor * 2, 1), };

                var scroller = new SolidScrollViewer
                {
                    Content = _stackPanel,
                    Location = new Point(PaddingHor, 0),
                    Size = new Size(Content.Size.Width - PaddingHor, Content.Size.Height - appBar.Size.Height),
                    ShowScrollbars = true,
                    HorizontalScroll = false,
                    VerticalScroll = true,
                };
                Content.AddElement(scroller.AnimateHorizontalEntrance(false));

            }
            finally
            {
                ScreenRoutines.CursorNormal();
            }
        }
Exemple #4
0
        public SystemPivotItem()
        {
            this.Title = "system";
            var items = new StackPanel();

            items.AddElement(this.CreateGroup("theme", "blue"));

            items.AddElement(this.CreateGroup("date & time", "UTC-03 Buenos Aires"));

            items.AddElement(this.CreateGroup("something longer enough to force multiline text in the title!",
                      "Something longer enough to force multiline text in the body! Something longer enough to force multiline text in the body!"));

            items.AddElement(this.CreateGroup("region & language", "United States"));

            this.Body = items;

            this.DelayInTransitions.AddRange(items.ChildrenEnumerable.Select(x => (x as TitledGroup).Content));
        }
Exemple #5
0
        public void horizontal_stack_panel_should_relayout_correct()
        {
            var stackPanel = new StackPanel(false);

            var child1 = new TextElement("someText 1") {Size = new Size(50, 75)};
            var child2 = new TextElement("someText 2") {Size = new Size(50, 75)};
            var child3 = new TextElement("someText 3") {Size = new Size(50, 75)};

            stackPanel.AddElement(child1);
            stackPanel.AddElement(child2);
            stackPanel.AddElement(child3);

            stackPanel.Size = new Size(300, 100);

            Assert.AreEqual(child1.Location.X, 0);
            Assert.AreEqual(child2.Location.X, child1.Width);
            Assert.AreEqual(child3.Location.X, child1.Width + child2.Width);

            Assert.AreEqual(child1.Location.Y, 0);
            Assert.AreEqual(child2.Location.Y, 0);
            Assert.AreEqual(child3.Location.Y, 0);
        }
        public LockScreenSettingsPage(CustomSettingsPage<MainSettings> page)
        {
            _page = page;
            _page.OnApplySettings += (sender, settings) => OnApplySettings(settings);

            // selection for lockscreen plugin
            this.AddElement(
                new TextElement("Lock screen plugin") { Size = new Size(SettingsConsts.MaxWidth, 50), }
                );

            _lockScreenTypeCombo = new ComboBox { Size = new Size(SettingsConsts.MaxWidth, 50), };
            FillLockScreenTypes();
            _lockScreenTypeCombo.SelectedIndexChanged += (s, e) => ChangeLockScreenType(); // urgent! after filling
            this.AddElement(_lockScreenTypeCombo);

            this.AddElement(new Separator());

            // add current lockscreen settings
            _settingsPanel = new StackPanel();
            this.AddElement(_settingsPanel);
            ChangeLockScreenType();
        }
Exemple #7
0
        private PivotItem CreateFirstPage()
        {
            var page = new PivotItem { Title = "first", };
            var stackPanel = new StackPanel { Size = new Size(480, 700) };
            page.Body = stackPanel;

            var txtIntro =
                new TextElement(
                "Change your phone's background and accent color to match your mood today, this week, or all month.\n\r\n\r")
                {
                    Size = new Size(stackPanel.Size.Width - 10, 50),
                    Style = new TextStyle(MetroTheme.PhoneFontFamilyNormal, MetroTheme.PhoneFontSizeSmall, MetroTheme.PhoneForegroundBrush),
                    AutoSizeMode = TextElement.AutoSizeModeOptions.WrapText,
                };
            stackPanel.AddElement(txtIntro);

            stackPanel.AddElement(
                new FontEdit()
                {
                    Size = new Size(300, 50),
                }
            );
            stackPanel.AddElement(new Canvas() { Size = new Size(100, 100), });

            stackPanel.AddElement(new ComboBox()
            {
                Size = new Size(300, 50),
                Items = new List<object>() { "dark", "light" },
                Style = MetroTheme.PhoneTextNormalStyle,
            }
                );
            stackPanel.AddElement(new Canvas() { Size = new Size(100, 100), });

            stackPanel.AddElement(new ComboBox()
                    {
                        Size = new Size(300, 50),
                        Items = new List<object>() { "11111", "222222", "333333", "444444", "5", "6", "7", "8" },
                        Style = MetroTheme.PhoneTextNormalStyle,
                    }
                );
            stackPanel.AddElement(new Canvas() { Size = new Size(100, 100), });

            stackPanel.AddElement(new ColorComboBox()
                    {
                        Size = new Size(300, 50),
                        Items = new List<object>()
                                    {
                                        new ColorItem(Color.Magenta, "magenta"),
                                        new ColorItem(Color.Purple, "purple"),
                                        new ColorItem(Color.Teal, "teal"),
                                        new ColorItem(Color.Lime, "lime"),
                                        new ColorItem(Color.Brown, "brown"),
                                        new ColorItem(Color.Pink, "pink"),
                                        new ColorItem(Color.Orange, "orange"),
                                        new ColorItem(Color.Blue, "blue"),
                                        new ColorItem(Color.Red, "red"),
                                        new ColorItem(Color.Green, "green")
                                    },
                        Style = MetroTheme.PhoneTextNormalStyle,
                    }
                );
            stackPanel.AddElement(new Canvas() { Size = new Size(100, 100), });

            return page;
        }
Exemple #8
0
        private PivotItem CreateSecondPage()
        {
            var page = new PivotItem { Title = "second" };
            var stackPanel = new StackPanel { Size = new Size(480, 700) };
            page.Body = stackPanel;

            stackPanel.AddElement(
                new Button("Test button 1")
                    {
                        Size = new Size(300, 50),
                        AutoSizeMode = Button.AutoSizeModeOptions.None,
                        TapHandler = point => OpenFile(),
                    }
                );

            return page;
        }
Exemple #9
0
        private PivotItem CreateFontPage()
        {
            var page = new PivotItem { Title = "incoming", };
            var stackPanel = new StackPanel { Size = new Size(480, 700) };

            var scroller = new ScrollViewer
            {
                Content = stackPanel,
                Location = new Point(0, 0),
                ShowScrollbars = true,
                HorizontalScroll = false,
                VerticalScroll = true,
            };

            stackPanel.AddElement(
                new TextBox(this)
                    {
                        Size = new Size(300, 50),
                        MultiLine = false,
                        Text = "abc",
                    });

            stackPanel.AddElement(
                new TextBox(this)
                {
                    Size = new Size(300, 150),
                    MultiLine = true,
                    Text = "abc\n123",
                });

            stackPanel.AddElement(
                new FileSettingsControl(this)
                {
                }
                );

            stackPanel.AddElement(
                new StringSettingsControl(this)
                {
                    Value = "123",
                    Caption = "Name",
                }
                );

            page.Body = scroller;
            return page;
        }
Exemple #10
0
        private PivotItem CreateFirstPage()
        {
            var page = new PivotItem { Title = "incoming", };
            _stackPanel = new StackPanel { Size = new Size(480, 700) };

            var scroller = new ScrollViewer
            {
                Content = _stackPanel,
                Location = new Point(0, 0),
                ShowScrollbars = true,
                HorizontalScroll = false,
                VerticalScroll = true,
            };

            page.Body = scroller;
            return page;
        }
Exemple #11
0
        public void vertical_stack_panel_should_relayout_correct_with_columns()
        {
            var stackPanel = new StackPanel(true) {Columns = 2};

            var child1 = new TextElement("someText 1") { Size = new Size(70, 75) };
            var child2 = new TextElement("someText 2") { Size = new Size(70, 75) };
            var child3 = new TextElement("someText 3") { Size = new Size(70, 75) };

            stackPanel.AddElement(child1);
            stackPanel.AddElement(child2);
            stackPanel.AddElement(child3);

            stackPanel.Size = new Size(100, 300);
            var columnSize = stackPanel.Size.Width / stackPanel.Columns;

            Assert.AreEqual(child1.Location.Y, 0);
            Assert.AreEqual(child1.Location.X, 0);

            Assert.AreEqual(child2.Location.Y, 0);

            Assert.AreEqual(child2.Location.X, columnSize);

            Assert.AreEqual(child3.Location.X, 0);
            Assert.AreEqual(child3.Location.Y, child1.Height);
        }
Exemple #12
0
        public void vertical_stack_panel_should_relayout_correct()
        {
            var stackPanel = new StackPanel(true);

            var child1 = new TextElement("someText 1") {Size = new Size(50, 75)};
            var child2 = new TextElement("someText 2") {Size = new Size(50, 75)};
            var child3 = new TextElement("someText 3") {Size = new Size(50, 75)};

            stackPanel.AddElement(child1);
            stackPanel.AddElement(child2);
            stackPanel.AddElement(child3);

            stackPanel.Size = new Size(100, 300);

            Assert.AreEqual(child1.Location.Y, 0);
            Assert.AreEqual(child2.Location.Y, child1.Height);
            Assert.AreEqual(child3.Location.Y, child1.Height + child2.Height);

            Assert.AreEqual(child1.Location.X, 0);
            Assert.AreEqual(child2.Location.X, 0);
            Assert.AreEqual(child3.Location.X, 0);
        }
Exemple #13
0
        public void vertical_stack_panel_should_increase_height_for_children_if_need()
        {
            var stackPanel = new StackPanel(true);

            var child1 = new TextElement("someText 1") {Size = new Size(50, 75)};
            var child2 = new TextElement("someText 2") {Size = new Size(50, 75)};
            var child3 = new TextElement("someText 3") {Size = new Size(50, 75)};

            stackPanel.AddElement(child1);
            stackPanel.AddElement(child2);
            stackPanel.AddElement(child3);

            stackPanel.Size = new Size(100, 200);

            Assert.AreEqual(child1.Height + child2.Height + child3.Height, stackPanel.Size.Height);
        }
Exemple #14
0
        public void vertical_stack_panel_should_have_desired_size_with_columns_when_autoResize_is_true()
        {
            var stackPanel = new StackPanel(false) { AutoResize = true, Size = new Size(50, 250), Columns = 2, IsVertical = true };

            var child1 = new TextElement("someText 1") { Size = new Size(100, 100) };
            var child2 = new TextElement("someText 2") { Size = new Size(100, 150) };
            var child3 = new TextElement("someText 3") { Size = new Size(100, 200) };

            stackPanel.AddElement(child1);
            stackPanel.AddElement(child2);
            stackPanel.AddElement(child3);

            Assert.AreEqual(child2.Height + child3.Height, stackPanel.Height);
        }
Exemple #15
0
        private void AddCallPanel(StackPanel parent, string phoneName, string phoneNumber)
        {
            if (string.IsNullOrEmpty(phoneNumber)) return;

            parent.AddElement(new TextElement(str_Call.Localize() + " " + phoneName)
                                  {
                                      Style = _titleStyle,
                                      AutoSizeMode = TextElement.AutoSizeModeOptions.OneLineAutoHeight,
                                      TapHandler = p => MakeCall(phoneNumber),
                                  });
            parent.AddElement(new TextElement(phoneNumber)
                                  {
                                      Style = _subTitleStyle,
                                      AutoSizeMode = TextElement.AutoSizeModeOptions.OneLineAutoHeight,
                                      TapHandler = p => MakeCall(phoneNumber),
                                  });
            parent.AddElement(new DelegateUIElement { Size = new Size(10, PaddingVer), });
        }
Exemple #16
0
        private void CreateControls()
        {
            ScreenRoutines.CursorWait();
            try
            {
                Control.ShadowedAnimationMode = FleuxControl.ShadowedAnimationOptions.FromRight;

                var appBar = new ApplicationBar
                {
                    Size = new Size(Size.Width, 48 + 2 * 10),
                    Location = new Point(0, Size.Height - 48 - 2 * 10)
                };
                appBar.AddButton(ResourceManager.Instance.GetBitmapFromEmbeddedResource(
                    (MetroTheme.PhoneBackgroundBrush == Color.White) ?
                        "Metrohome65.Settings.Controls.Images.back-light.bmp" : "Metrohome65.Settings.Controls.Images.back-dark.bmp"
                    ));
                appBar.ButtonTap += (sender, args) => Close();
                Control.AddElement(appBar.AnimateHorizontalEntrance(false));

                var stackPanel = new StackPanel { Size = new Size(SettingsConsts.MaxWidth, 10), };

                // buttons for selecting font family
                stackPanel.AddElement(
                    new TextElement("Font family") { AutoSizeMode = TextElement.AutoSizeModeOptions.OneLineAutoHeight, }
                );

                var fonts = new List<string>
                    {
                        MetroTheme.PhoneFontFamilyNormal,
                        MetroTheme.PhoneFontFamilyLight,
                        MetroTheme.PhoneFontFamilySemiLight,
                        MetroTheme.PhoneFontFamilySemiBold,
                    };
                var fontBindingManager = new BindingManager() { MultiBind = true, };
                foreach (var font in fonts)
                {
                    var button = new ToggleButton(font)
                        {
                            Size = new Size(SettingsConsts.MaxWidth, 50),
                        };
                    stackPanel.AddElement(button);
                    fontBindingManager.Bind(_textStyle, "FontFamily", button, "Value", true);
                    stackPanel.AddElement(new DelegateUIElement() { Size = new Size(10, 10), });
                }

                stackPanel.AddElement(new DelegateUIElement() { Size = new Size(10, 20) });

                // buttons for selecting font size
                stackPanel.AddElement(
                    new TextElement("Font size") { AutoSizeMode = TextElement.AutoSizeModeOptions.OneLineAutoHeight, }
                );

                var sizePanel = new Canvas()
                {
                    Size = new Size(SettingsConsts.MaxWidth, 10),
                };
                stackPanel.AddElement(sizePanel);

                var sizeBindingManager = new BindingManager() { MultiBind = true, };
                var sizes = new List<int>
                    {
                         8, 10, 11, 12, 14,
                        16, 18, 20, 22, 24,
                        26, 28, 30, 32, 34,
                        36, 38, 42, 46, 50,
                    };
                var i = 0;
                foreach (var size in sizes)
                {
                    var button = new ToggleButton(size)
                            {
                                Location = new Point((i%5)*90, (i/5)*60),
                                Size = new Size(80, 50),
                            };
                    sizeBindingManager.Bind(_textStyle, "FontSize", button, "Value", true);
                    sizePanel.AddElement(button);
                    i++;
                }

                stackPanel.AddElement(new DelegateUIElement() { Size = new Size(10, 20)});

                // font color
                var fontColor = new ColorSettingsControl(false)
                    {
                        Size = new Size(SettingsConsts.MaxWidth, 50),
                        Caption = "Font color",
                    };
                fontBindingManager.Bind(_textStyle, "Foreground", fontColor, "Value", true);
                stackPanel.AddElement(fontColor);

                stackPanel.AddElement(new DelegateUIElement() { Size = new Size(10, 20) });

                // example text block
                _example = new TextElement("Example")
                    {
                        AutoSizeMode = TextElement.AutoSizeModeOptions.OneLineAutoHeight,
                        Style = _textStyle,
                    };
                _textStyle.PropertyChanged += (sender, args) => _example.Update();
                stackPanel.AddElement(_example);

                var scroller = new SolidScrollViewer
                {
                    Content = stackPanel,
                    Location = new Point(SettingsConsts.PaddingHor, SettingsConsts.PaddingHor),
                    Size = new Size(this.Size.Width - SettingsConsts.PaddingHor, this.Size.Height - appBar.Size.Height - SettingsConsts.PaddingHor),
                    ShowScrollbars = true,
                    HorizontalScroll = false,
                    VerticalScroll = true,
                };

                Control.AddElement(scroller);
            }
            finally
            {
                ScreenRoutines.CursorNormal();
            }
        }