public StartScreen(BaseScreenComponent manager) : base(manager) { Background = new BorderBrush(Color.DarkRed); StackPanel stack = new StackPanel(manager); Controls.Add(stack); // Button zur Controls Demo Button controlScreenButton = Button.TextButton(manager, "Controls", "special"); //Button mit speziellen Style erstellen controlScreenButton.LeftMouseClick += (s, e) => //Click Event festlegen { manager.NavigateToScreen(new SplitScreen(manager)); //Screen wechseln }; stack.Controls.Add(controlScreenButton); //Button zu Root hinzufügen // Button zur Mouse Capture Demo Button capturedMouseButton = Button.TextButton(manager, "Captured Mouse", "special"); capturedMouseButton.LeftMouseClick += (s, e) => manager.NavigateToScreen(new MouseCaptureScreen(manager)); stack.Controls.Add(capturedMouseButton); Button tabDemoScreen = Button.TextButton(manager, "Tab Demo", "special"); tabDemoScreen.LeftMouseClick += (s, e) => manager.NavigateToScreen(new TabScreen(manager)); stack.Controls.Add(tabDemoScreen); Button dragDropScreen = Button.TextButton(manager, "Drag & Drop", "special"); dragDropScreen.LeftMouseClick += (s, e) => manager.NavigateToScreen(new DragDropScreen(manager)); stack.Controls.Add(dragDropScreen); }
public MouseCaptureScreen(BaseScreenComponent manager) : base(manager) { DefaultMouseMode = MouseMode.Captured; Background = new BorderBrush(Color.Green); StackPanel stack = new StackPanel(manager); Controls.Add(stack); Label title = new Label(manager) { TextColor = Color.White, Text = "Press ESC to return to Main Screen", }; output = new Label(manager) { TextColor = Color.White, Text = position.ToString(), }; stack.Controls.Add(title); stack.Controls.Add(output); }
/// <summary> /// Initialisiert einen Standard-Button mit Text-Inhalt /// </summary> /// <param name="text">Enthaltener Text</param> /// <param name="manager">Der <see cref="IScreenManager"/></param> /// <param name="style">(Optional) Der zu verwendende Style</param> /// <returns>Button-Instanz</returns> public static Button TextButton(BaseScreenComponent manager, string text, string style = "") { return new Button(manager, style) { Content = new Label(manager) { Text = text } }; }
/// <summary> /// Erzeugt eine neue Instanz der Klasse Checkbox /// </summary> /// <param name="manager">Der verwendete <see cref="IScreenManager"/></param> public Checkbox(BaseScreenComponent manager) : base(manager) { CanFocus = true; TabStop = true; ApplySkin(typeof(Checkbox)); }
/// <summary> /// Base Constructor /// </summary> /// <param name="manager">ScreenManager</param> public TabControl(BaseScreenComponent manager) : base(manager) { Pages = new ItemCollection<TabPage>(); Pages.OnInsert += OnInsert; Pages.OnRemove += OnRemove; tabControlGrid = new Grid(manager) { HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Stretch }; tabControlGrid.Columns.Add(new ColumnDefinition() {ResizeMode = ResizeMode.Parts, Width = 1}); tabControlGrid.Rows.Add(new RowDefinition() {ResizeMode = ResizeMode.Auto}); tabControlGrid.Rows.Add(new RowDefinition() {ResizeMode = ResizeMode.Parts, Height = 1}); Content = tabControlGrid; tabListStack = new StackPanel(manager); tabListStack.HorizontalAlignment = HorizontalAlignment.Stretch; tabListStack.Orientation = Orientation.Horizontal; tabListStack.Background = TabListBackground; tabControlGrid.AddControl(tabListStack, 0, 0); tabPage = new ContentControl(manager); tabPage.HorizontalAlignment = HorizontalAlignment.Stretch; tabPage.VerticalAlignment = VerticalAlignment.Stretch; tabPage.Background = TabPageBackground; tabControlGrid.AddControl(tabPage, 0, 1); ApplySkin(typeof(TabControl)); }
/// <summary> /// Erzeugt eine neue Instanz der Klasse Button. /// </summary> /// <param name="manager">Der <see cref="IScreenManager"/></param> /// <param name="style">(Optional) der zu verwendende Style</param> public Button(BaseScreenComponent manager, string style = "") : base(manager, style) { TabStop = true; CanFocus = true; ApplySkin(typeof(Button)); }
public Splitter(BaseScreenComponent manager, string style = "") : base(manager, style) { CanFocus = true; TabStop = true; ApplySkin(typeof(Splitter)); }
/// <summary> /// Erzeugt eine neue Instanz der Textbox-Klasse /// </summary> /// <param name="manager"></param> /// <param name="style"></param> public Textbox(BaseScreenComponent manager, string style = "") : base(manager, style) { TextColor = Color.Black; TabStop = true; CanFocus = true; Padding = Border.All(5); ApplySkin(typeof(Textbox)); }
/// <summary> /// Erzeugt einen neuen Slider. /// </summary> /// <param name="manager">Der verwendete <see cref="IScreenManager"/></param> /// <param name="style">(Optional) Der zu verwendende Style.</param> public Slider(BaseScreenComponent manager, string style = "") : base(manager, style) { CanFocus = true; TabStop = true; Range = 100; Value = 50; ApplySkin(typeof(Slider)); }
public Control(BaseScreenComponent manager, string style = "") { if (manager == null) throw new ArgumentNullException("manager"); ScreenManager = manager; Style = style; children = new ControlCollection(this); children.OnInsert += ControlCollectionInsert; children.OnRemove += ControlCollectionRemove; manager.ClientSizeChanged += (s, e) => { OnResolutionChanged(); }; ApplySkin(typeof(Control)); }
public TabScreen(BaseScreenComponent manager) : base(manager) { //Create Tab Pages TabPage tabPage = new TabPage(manager, "Tab 1"); TabPage tabPage2 = new TabPage(manager, "Tab 2"); TabPage tabPage3 = new TabPage(manager, "Tab 3"); //Create Tab Control & Add Pages TabControl tab = new TabControl(manager); tab.Pages.Add(tabPage); tab.Pages.Add(tabPage2); tab.Pages.Add(tabPage3); tab.VerticalAlignment = VerticalAlignment.Stretch; tab.HorizontalAlignment = HorizontalAlignment.Stretch; //Add Text to Page 1 tabPage.Controls.Add(new Label(manager) { Text = "Content on Page 1" }); //Add "Create Tab" to page 2 Button createPage = Button.TextButton(manager, "Create Tab"); createPage.LeftMouseClick += (s, e) => { TabPage page = new TabPage(manager, "NEW TAB"); page.Controls.Add(new Label(manager) { Text = "This is a new tab page" }); tab.Pages.Add(page); }; tabPage2.Controls.Add(createPage); //Add "Remove this page" to page 3 Button removePage3 = Button.TextButton(manager, "Remove this Page"); removePage3.LeftMouseClick += (s, e) => { tab.Pages.Remove(tabPage3); }; tabPage3.Controls.Add(removePage3); Controls.Add(tab); }
public ContentControl(BaseScreenComponent manager, string style = "") : base(manager, style) { ApplySkin(typeof(ContentControl)); }
internal FlyoutControl(BaseScreenComponent manager) : base(manager) { ApplySkin(typeof(FlyoutControl)); }
/// <summary> /// Erzeugt eine neue Instanz eines Bildsteuerlements. /// </summary> /// <param name="manager">Der verwendete <see cref="IScreenManager"/></param> /// <param name="style">(Optional) Der zu verwendende Style.</param> public Image(BaseScreenComponent manager, string style = "") : base(manager, style) { ApplySkin(typeof(Image)); }
public Label(BaseScreenComponent manager, string style = "") : base(manager, style) { ApplySkin(typeof(Label)); }
public HealthBarControl(BaseScreenComponent manager, string style = "") : base(manager, style) { Background = Skin.Current.HorizontalScrollBackgroundBrush; }
public ProgressBar(BaseScreenComponent manager, string style = "") : base(manager, style) { ApplySkin(typeof(ProgressBar)); }
public SplitScreen(BaseScreenComponent manager) : base(manager) { Background = new BorderBrush(Color.Gray); //Hintergrundfarbe festlegen Button backButton = Button.TextButton(manager, "Back"); //Neuen TextButton erzeugen backButton.HorizontalAlignment = HorizontalAlignment.Left; //Links backButton.VerticalAlignment = VerticalAlignment.Top; //Oben backButton.LeftMouseClick += (s, e) => { manager.NavigateBack(); }; //KlickEvent festlegen Controls.Add(backButton); //Button zum Screen hinzufügen //ScrollContainer ScrollContainer scrollContainer = new ScrollContainer(manager) //Neuen ScrollContainer erzeugen { VerticalAlignment = VerticalAlignment.Stretch, // 100% Höhe HorizontalAlignment = HorizontalAlignment.Stretch //100% Breite }; Controls.Add(scrollContainer); //ScrollContainer zum Root(Screen) hinzufügen //Stackpanel - SubControls werden Horizontal oder Vertikal gestackt StackPanel panel = new StackPanel(manager); //Neues Stackpanel erzeugen panel.VerticalAlignment = VerticalAlignment.Stretch; //100% Höhe scrollContainer.Content = panel; //Ein Scroll Container kann nur ein Control beherbergen //Label Label label = new Label(manager) { Text = "Control Showcase" }; //Neues Label erzeugen panel.Controls.Add(label); //Label zu Panel hinzufügen Button tB = Button.TextButton(manager, "TEST"); tB.Background = new TextureBrush(LoadTexture2DFromFile("./test_texture_round.png", manager.GraphicsDevice), TextureBrushMode.Stretch); panel.Controls.Add(tB); //Button Button button = Button.TextButton(manager, "Dummy Button"); //Neuen TextButton erzeugen panel.Controls.Add(button); //Button zu Panel hinzufügen //Progressbar ProgressBar pr = new ProgressBar(manager) //Neue ProgressBar erzeugen { Value = 99, //Aktueller Wert Height = 20, //Höhe Width = 200 //Breite }; panel.Controls.Add(pr); //ProgressBar zu Panel hinzufügen //ListBox Listbox<string> list = new Listbox<string>(manager); //Neue ListBox erstellen list.TemplateGenerator = (item) => //Template Generator festlegen { return new Label(manager) { Text = item }; //Control (Label) erstellen }; panel.Controls.Add(list); //Liste zu Panel hinzufügen list.Items.Add("Hallo"); //Items zur Liste hinzufügen list.Items.Add("Welt"); //... //Combobox Combobox<string> combobox = new Combobox<string>(manager) //Neue Combobox erstellen { Height = 20, //Höhe 20 Width = 100 //Breite 100 }; combobox.TemplateGenerator = (item) => //Template Generator festlegen { return new Label(manager) { Text = item }; //Control (Label) erstellen }; panel.Controls.Add(combobox); //Combobox zu Panel hinzufügen combobox.Items.Add("Combobox"); //Items zu Combobox hinzufügen combobox.Items.Add("Item"); combobox.Items.Add("Hallo"); Button clearCombobox = Button.TextButton(manager, "Clear Combobox"); clearCombobox.LeftMouseClick += (s, e) => { combobox.Items.Clear(); list.Items.Clear(); }; panel.Controls.Add(clearCombobox); //Slider Value Label Label labelSliderHorizontal = new Label(manager); //Horizontaler Slider Slider sliderHorizontal = new Slider(manager) { Width = 150, Height = 20, }; sliderHorizontal.ValueChanged += (value) => { labelSliderHorizontal.Text = "Value: " + value; }; //Event on Value Changed panel.Controls.Add(sliderHorizontal); labelSliderHorizontal.Text = "Value: " + sliderHorizontal.Value; //Set Text initially panel.Controls.Add(labelSliderHorizontal); //Slider Value Label Label labelSliderVertical = new Label(manager); //Vertikaler Slider Slider sliderVertical = new Slider(manager) { Range = 100, Height = 200, Width = 20, Orientation = Orientation.Vertical }; sliderVertical.ValueChanged += (value) => { labelSliderVertical.Text = "Value: " + value; }; panel.Controls.Add(sliderVertical); labelSliderVertical.Text = "Value: " + sliderVertical.Value; panel.Controls.Add(labelSliderVertical); Checkbox checkbox = new Checkbox(manager); panel.Controls.Add(checkbox); //Textbox textbox = new Textbox(manager) //Neue TextBox erzeugen { Background = new BorderBrush(Color.LightGray), //Festlegen eines Backgrounds für ein Control HorizontalAlignment = HorizontalAlignment.Stretch, //100% Breite Text = "TEXTBOX!", //Voreingestellter text MinWidth = 100 //Eine Textbox kann ihre Größe automatisch anpassen }; Button clearTextbox = Button.TextButton(manager, "Clear Textbox"); clearTextbox.LeftMouseClick += (s, e) => { textbox.SelectionStart = 0; textbox.Text = ""; }; Button disableControls = Button.TextButton(manager, "Toggle Controls disabled"); disableControls.LeftMouseClick += (s, e) => { foreach (var c in panel.Controls) { c.Enabled = !c.Enabled; } }; panel.Controls.Add(clearTextbox); panel.Controls.Add(textbox); //Textbox zu Panel hinzufügen panel.Controls.Add(disableControls); }
public CanvasControl(BaseScreenComponent manager, string style = "") : base(manager, style) { ApplySkin(typeof(CanvasControl)); }
public TabPage(BaseScreenComponent manager, string title) : base(manager) { Title = title; }
/// <summary> /// Erzeugt eine neue Instanz der Klasse StackPanel. /// </summary> /// <param name="manager">Der <see cref="IScreenManager"/></param> public StackPanel(BaseScreenComponent manager) : base(manager) { ApplySkin(typeof(StackPanel)); }