protected override void LoadContent() { var spriteBatchAdapter = new SpriteBatchAdapter(new SpriteBatch(this.GraphicsDevice)); var primitivesService = new PrimitivesService(this.GraphicsDevice); var renderer = new Renderer(spriteBatchAdapter, primitivesService); this.rootElement = new RootElement(this.GraphicsDevice.Viewport.ToRect(), renderer, new InputManager()); var scrollView = new ScrollViewer(); this.rootElement.Content = scrollView; var stackPanel = new StackPanel(); scrollView.Content = stackPanel; scrollView.CanHorizontallyScroll = true; var headerFont = new SpriteFontAdapter(this.Game.Content.Load<SpriteFont>("SpriteFont")); var descFont = new SpriteFontAdapter(this.Game.Content.Load<SpriteFont>("SpriteFont")); foreach (int app in Enumerable.Range(0, 2)) { var grid = new Grid { ColumnDefinitions = { new ColumnDefinition { Width = GridLength.Auto }, new ColumnDefinition() } }; grid.Children.Add( new Image { Source = new TextureImage( new Texture2DAdapter(this.Game.Content.Load<Texture2D>("Textures/badger2"))) }); var textStack = new StackPanel { Margin = new Thickness(12, 0, 0, 0) }; Grid.SetColumn(textStack, 1); grid.Children.Add(textStack); textStack.Children.Add(new TextBlock(headerFont) { Text = "Title" }); textStack.Children.Add( new TextBlock(descFont) { Text = "Description - some text that should wrap when it runs of the screen.", Wrapping = TextWrapping.Wrap, }); stackPanel.Children.Add(grid); } }
protected override void LoadContent() { this.spriteBatchAdapter = new SpriteBatchAdapter(new SpriteBatch(this.GraphicsDevice)); var primitivesService = new PrimitivesService(this.GraphicsDevice); var renderer = new Renderer(this.spriteBatchAdapter, primitivesService); var spriteFontAdapter = new SpriteFontAdapter(this.Game.Content.Load<SpriteFont>("Segoe18")); var largeFont = new SpriteFontAdapter(this.Game.Content.Load<SpriteFont>("Segoe30")); var addButtonImageTexture = new TextureImage(new Texture2DAdapter(this.Game.Content.Load<Texture2D>("AddButton"))); var trashButtonImageTexture = new TextureImage(new Texture2DAdapter(this.Game.Content.Load<Texture2D>("TrashButton"))); this.rootElement = new RootElement(this.GraphicsDevice.Viewport.ToRect(), renderer, new InputManager()); var buttonClickResults = new ObservableCollection<string>(); var header1 = new TextBlock(spriteFontAdapter) { Text = "MY APPLICATION", Foreground = new SolidColorBrush(Colors.White), Margin = new Thickness(10) }; var header2 = new TextBlock(largeFont) { Text = "XNA Application Bar", Foreground = new SolidColorBrush(Colors.White), Margin = new Thickness(10) }; var itemsControl = new ItemsControl { ItemsSource = buttonClickResults, ItemTemplate = _ => { var textBlock = new TextBlock(spriteFontAdapter) { Foreground = new SolidColorBrush(Colors.White) }; textBlock.Bind( TextBlock.TextProperty, BindingFactory.CreateOneWay<string>()); return textBlock; } }; var scrollViewer = new ScrollViewer { Content = itemsControl }; var applicationBar = new ApplicationBar { Buttons = { new ApplicationBarIconButton("Add", addButtonImageTexture), new ApplicationBarIconButton("Delete", trashButtonImageTexture) } }; var grid = new Grid { Background = new SolidColorBrush(Colors.Black), RowDefinitions = { new RowDefinition { Height = GridLength.Auto }, new RowDefinition { Height = GridLength.Auto }, new RowDefinition(), new RowDefinition { Height = new GridLength(70) } }, Children = { header1, header2, scrollViewer, applicationBar } }; applicationBar.Clicks.Subscribe( Observer.Create<ApplicationBarIconButton>(s => buttonClickResults.Add(s.Text))); Grid.SetRow(header1, 0); Grid.SetRow(header2, 1); Grid.SetRow(scrollViewer, 2); Grid.SetRow(applicationBar, 3); this.rootElement.Content = grid; }
/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. this.spriteBatch = new SpriteBatchAdapter(new SpriteBatch(this.GraphicsDevice)); var primitiveService = new PrimitivesService(this.GraphicsDevice); var renderer = new Renderer(this.spriteBatch, primitiveService); var input = new InputManager(); this.root = new RootElement(this.GraphicsDevice.Viewport.ToRect(), renderer, input); this.font = new SpriteFontAdapter(this.Content.Load<SpriteFont>(@"SpriteFont")); this.chunks = new ObservableCollection<Chunk>(); string[] files = Directory.GetFiles(Environment.CurrentDirectory + @"\Content\Textures"); foreach (string file in files) { var chunk = new Chunk { Name = Path.GetFileNameWithoutExtension(file), Texture = this.Content.Load<Texture2D>(@"Textures/" + Path.GetFileNameWithoutExtension(file)) }; this.chunks.Add(chunk); } var items = new ItemsControl { ItemTemplate = _ => { var textBlock = new TextBlock(this.font) { Foreground = new SolidColorBrush(Colors.White), HorizontalAlignment = HorizontalAlignment.Center }; textBlock.Bind( TextBlock.TextProperty, BindingFactory.CreateOneWay<Chunk, string>(o => o.Name)); var image = new Image { Stretch = Stretch.Fill, Width = 100, }; image.Bind( Image.SourceProperty, BindingFactory.CreateOneWay<Chunk, ImageSource>(o => o.XnaImage)); var panel = new StackPanel { Orientation = Orientation.Vertical, Background = new SolidColorBrush(new Media.Color(0, 0, 0, 100)), }; panel.Children.Add(image); panel.Children.Add(textBlock); var border = new Border { BorderBrush = new SolidColorBrush(Colors.Black), BorderThickness = new Thickness(2, 2, 2, 2), Margin = new Thickness(5, 5, 5, 5), Child = panel, }; var button = new Button { Content = border, Margin = new Thickness(5, 5, 5, 5), }; return button; }, ItemsSource = this.chunks, }; items.ItemsPanel.Margin = new Thickness(0, 0, 25, 0); var scrollViewer = new ScrollViewer { Content = items }; var canvas = new Canvas { }; var chunkPallet = new NinePatch(this.Content, canvas, "Chunk Pallet", this.font) { Width = 280, Height = 550, }; this.ninePatches.Add(chunkPallet); chunkPallet.Children.Add(scrollViewer); canvas.Children.Add(chunkPallet); Grid.SetColumn(scrollViewer, 1); Grid.SetRow(scrollViewer, 1); Canvas.SetLeft(chunkPallet, 740); Canvas.SetTop(chunkPallet, 20); this.root.Content = canvas; }