Example #1
0
        protected override void CreateControlInternal(out FrameworkElement control)
        {
            var labelControl = new TextBlock()
            {
                Text = Label,
                VerticalAlignment = VerticalAlignment.Center,
                Margin            = new Thickness(0, 7, 0, 0)
            };

            var largeStep     = StepSize * 2.0;
            var sliderControl = new Slider
            {
                Minimum             = MinValue,
                Maximum             = MaxValue,
                SmallChange         = StepSize,
                LargeChange         = largeStep,
                VerticalAlignment   = VerticalAlignment.Center,
                HorizontalAlignment = HorizontalAlignment.Center,
                Width  = 200,
                Margin = new Thickness(0, 2, 0, -3),
                IsSnapToTickEnabled = false,
                TickFrequency       = largeStep,
            };
            var valueToolTip = new TextBlock();

            valueToolTip.SetBinding(TextBlock.TextProperty, new Binding("Value")
            {
                StringFormat = "N2"
            });
            valueToolTip.DataContext = sliderControl;
            ToolTipServiceExtend.SetToolTip(sliderControl, valueToolTip);

            if (ToolTip != "")
            {
                ToolTipServiceExtend.SetToolTip(labelControl, ToolTip);
            }

            SetupOptionToControlValueBinding(sliderControl, RangeBase.ValueProperty);

            var mainGrid = new Grid()
            {
                Margin = new Thickness(0, 3, 0, 3)
            };

            mainGrid.ColumnDefinitions.Add(new ColumnDefinition()
            {
                Width = GridLength.Auto
            });
            mainGrid.ColumnDefinitions.Add(new ColumnDefinition()
            {
                Width = new GridLength(100, GridUnitType.Star)
            });
            mainGrid.Children.Add(labelControl);
            Grid.SetColumn(labelControl, 0);
            mainGrid.Children.Add(sliderControl);
            Grid.SetColumn(sliderControl, 1);

            control = mainGrid;
        }
Example #2
0
        private void DestroyTooltip()
        {
            if (this.tooltip is null)
            {
                return;
            }

            ToolTipServiceExtend.SetToolTip(this, null);
            this.tooltip = null;
        }
Example #3
0
        protected override void CreateControlInternal(out FrameworkElement control)
        {
            //<DataTemplate DataType="{x:Type options:OptionTextBoxDouble}">
            //    <StackPanel Orientation="Horizontal">
            //    <TextBlock Text="{Binding Label}"
            //               Margin="0,0,10,0"
            //               base:ToolTipServiceExtend.ToolTip="{Binding Tooltip}" />
            //    <TextBox Text="{Binding CurrentValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
            //             Width="75" />
            //    </StackPanel>
            //</DataTemplate>

            var label = new FormattedTextBlock()
            {
                Content           = Label,
                VerticalAlignment = VerticalAlignment.Center,
                Margin            = new Thickness(0, 0, 10, 0)
            };

            if (ToolTip != "")
            {
                ToolTipServiceExtend.SetToolTip(label, ToolTip);
            }

            var textbox = new TextBox()
            {
                VerticalAlignment   = VerticalAlignment.Center,
                HorizontalAlignment = HorizontalAlignment.Right,
                Width = 100
            };

            SetupOptionToControlValueBinding(textbox, TextBox.TextProperty);


            var mainGrid = new Grid()
            {
                Margin = new Thickness(0, 3, 0, 3)
            };

            mainGrid.ColumnDefinitions.Add(new ColumnDefinition()
            {
                Width = GridLength.Auto
            });
            mainGrid.ColumnDefinitions.Add(new ColumnDefinition()
            {
                Width = new GridLength(100, GridUnitType.Star)
            });
            mainGrid.Children.Add(label);
            Grid.SetColumn(label, 0);
            mainGrid.Children.Add(textbox);
            Grid.SetColumn(textbox, 1);

            control = mainGrid;
        }
Example #4
0
        protected virtual void SetupSliderControlTooltip(Slider slider)
        {
            var textBlock      = new TextBlock();
            var tooltipBinding = new Binding("Value");

            this.SetupTooltipBinding(tooltipBinding);
            textBlock.SetBinding(
                TextBlock.TextProperty,
                tooltipBinding);

            textBlock.DataContext = slider;
            ToolTipServiceExtend.SetToolTip(slider, textBlock);
        }
Example #5
0
        private void RefreshTooltip()
        {
            this.DestroyTooltip();

            if (!this.IsMouseOver)
            {
                return;
            }

            var protoItemAmmo = this.viewModel.ProtoItemAmmo;

            if (protoItemAmmo is null)
            {
                return;
            }

            this.tooltip = ItemTooltipControl.Create(protoItemAmmo);
            ToolTipServiceExtend.SetToolTip(this, this.tooltip);
        }
Example #6
0
        private static void AddSupporterBadge(InlineCollection inlines)
        {
            // hidden textblock is acting as a source of the foreground brush for the icon
            var hiddenTextBlock = new TextBlock()
            {
                Visibility = Visibility.Hidden
            };

            var iconPath = new Path
            {
                Width   = 12,
                Height  = 12,
                Data    = SupporterBadgeGeometry,
                Stretch = Stretch.Uniform
            };

            iconPath.SetBinding(Shape.FillProperty,
                                // bind to the foreground of the hidden textblock
                                new Binding("Foreground")
            {
                Source = hiddenTextBlock
            });

            var grid = new Grid()
            {
                Background = Brushes.Transparent,
                Margin     = new Thickness(1, 0, 0, -4)
            };

            grid.Children.Add(hiddenTextBlock);
            grid.Children.Add(iconPath);
            inlines.Add(new InlineUIContainer(grid));

            ToolTipServiceExtend.SetToolTip(grid,
                                            new FormattedTextBlock()
            {
                Content = "[b]"
                          + CoreStrings.SupporterPack_Badge
                          + "[/b][br]"
                          + CoreStrings.SupporterPack_Description,
                MaxWidth = 300
            });
        }
Example #7
0
        protected override void CreateControlInternal(out FrameworkElement control)
        {
            //<DataTemplate DataType="{x:Type options:OptionTextBoxDouble}">
            //    <StackPanel Orientation="Horizontal">
            //    <TextBlock Text="{Binding Label}"
            //               Margin="0,0,10,0"
            //               base:ToolTipServiceExtend.ToolTip="{Binding Tooltip}" />
            //    <TextBox Text="{Binding CurrentValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
            //             Width="75" />
            //    </StackPanel>
            //</DataTemplate>

            var label = new FormattedTextBlock()
            {
                Content           = Label,
                VerticalAlignment = VerticalAlignment.Center,
                Margin            = new Thickness(0, 0, 10, 0)
            };

            if (ToolTip != "")
            {
                ToolTipServiceExtend.SetToolTip(label, ToolTip);
            }

            var textbox = new TextBox()
            {
                VerticalAlignment = VerticalAlignment.Center,
                Width             = 75
            };

            SetupOptionToControlValueBinding(textbox, TextBox.TextProperty);

            var stackPanel = new StackPanel()
            {
                Orientation = Orientation.Horizontal,
                Margin      = new Thickness(0, 5, 0, 5)
            };

            stackPanel.Children.Add(label);
            stackPanel.Children.Add(textbox);

            control = stackPanel;
        }
Example #8
0
        protected override void CreateControlInternal(out FrameworkElement control)
        {
            //<DataTemplate DataType="{x:Type options:OptionCheckBox}">
            //    <CheckBox IsChecked="{Binding CurrentValue}"
            //              Content="{Binding Label}"
            //              base:ToolTipServiceExtend.ToolTip="{Binding ToolTip}" />
            //</DataTemplat>

            var checkbox = new CheckBox()
            {
                VerticalAlignment = VerticalAlignment.Center,
                Content           = Label,
                Margin            = new Thickness(0, 5, 0, 5)
            };

            SetupOptionToControlValueBinding(checkbox, ToggleButton.IsCheckedProperty);

            if (ToolTip != "")
            {
                ToolTipServiceExtend.SetToolTip(checkbox, ToolTip);
            }

            control = checkbox;
        }
Example #9
0
 private static void ExecuteCommandEject()
 {
     ToolTipServiceExtend.CloseOpenedTooltip();
     CharacterRespawnSystem.Instance.ClientRequestRespawnInWorld();
 }
Example #10
0
        public virtual UIElement CreateControl()
        {
            var options = this.Options.Where(o => !o.IsHidden).ToList();

            if (options.Count <= 0)
            {
                return(new TextBlock()
                {
                    // ReSharper disable once CanExtractXamlLocalizableStringCSharp
                    Text = "This category has no options",
                    HorizontalAlignment = HorizontalAlignment.Center,
                    VerticalAlignment = VerticalAlignment.Center
                });
            }

            var tableControl = new TableControl()
            {
                VerticalAlignment   = VerticalAlignment.Top,
                HorizontalAlignment = HorizontalAlignment.Center
            };

            tableControl.Loaded
                += (_, e) =>
                {
                if (!tableControl.IsEmpty)
                {
                    return;
                }

                // populate options
                tableControl.Clear();

                // local helper method for getting option order
                IEnumerable <IProtoOption> GetOptionOrder(IProtoOption tab)
                {
                    if (tab.OrderAfterOption is not null)
                    {
                        yield return(tab.OrderAfterOption);
                    }
                }

                foreach (var option in options.OrderBy(o => o.ShortId)
                         .TopologicalSort(GetOptionOrder)
                         .Where(o => !o.IsHidden))
                {
                    option.CreateControl(out var labelControl, out var optionControl);
                    optionControl.Focusable = false;

                    if (!string.IsNullOrEmpty(option.Description))
                    {
                        // wrap into a stackpanel with an info tooltip control
                        var controlInfoPoint = new Control
                        {
                            Style = Api.Client.UI.GetApplicationResource <Style>(
                                "ControlInfoQuestionPointStyle"),
                            VerticalAlignment = VerticalAlignment.Bottom,
                            Margin            = new Thickness(0, 0, 0, 3)
                        };

                        var stackPanel = new StackPanel
                        {
                            Orientation = Orientation.Horizontal,
                            Background  = Brushes.Transparent
                        };

                        stackPanel.Children.Add(optionControl);
                        stackPanel.Children.Add(controlInfoPoint);
                        optionControl = stackPanel;

                        var tooltipContent = new FormattedTextBlock()
                        {
                            Content  = option.Description,
                            MaxWidth = 300
                        };

                        ToolTipServiceExtend.SetToolTip(stackPanel, tooltipContent);
                        ToolTipServiceExtend.SetToolTip(labelControl, tooltipContent);
                    }

                    tableControl.Add(labelControl, optionControl);
                }
                };

            return(new ScrollViewer()
            {
                Content = tableControl,
                VerticalScrollBarVisibility = ScrollBarVisibility.Visible
            });
        }