Browse Source

REPORTS - additions to Preview window toolbards + email template support (create image for button)

Nick-PRSDigital@bitbucket.org 2 years ago
parent
commit
3ab94fe4c7
3 changed files with 61 additions and 21 deletions
  1. 11 11
      InABox.Reports/PreviewWindow.xaml
  2. 12 10
      InABox.Reports/PreviewWindow.xaml.cs
  3. 38 0
      inabox.wpf/ImageUtils.cs

+ 11 - 11
InABox.Reports/PreviewWindow.xaml

@@ -27,29 +27,29 @@
                 <RowDefinition Height="*" />
             </Grid.RowDefinitions>
 
-            <ToolBar x:Name="Toolbar" Grid.Row="0" Grid.Column="0" ToolBarTray.IsLocked="True" Loaded="ToolBar_Loaded"
+            <ToolBar x:Name="Toolbar" Grid.Row="0" Grid.Column="0" ToolBarTray.IsLocked="True" Loaded="ToolBar_Loaded" Background="White"
                  Margin="0" Padding="0">
 
-                <Button x:Name="PrintButton" ToolTip="Print Report" Click="PrintButton_Click" ToolBar.OverflowMode="Never" />
-                <Button x:Name="SaveButton" ToolTip="Save As PDF" Click="SaveButton_Click" ToolBar.OverflowMode="Never" />
+                <Button x:Name="PrintButton" ToolTip="Print Report" Click="PrintButton_Click" ToolBar.OverflowMode="Never" VerticalAlignment="Top"/>
+                <Button x:Name="SaveButton" ToolTip="Save As PDF" Click="SaveButton_Click" ToolBar.OverflowMode="Never" VerticalAlignment="Top"/>
                 <!--<Button x:Name="EmailButton" ToolTip="Email Report" Click="EmailButton_Click" ToolBar.OverflowMode="Never"/>-->
                 <Separator x:Name="ExportSeparator" />
-                <Button x:Name="FirstButton" ToolTip="First Page" Click="FirstButton_Click" ToolBar.OverflowMode="Never" />
-                <Button x:Name="BackButton" ToolTip="Previous Page" Click="BackButton_Click" ToolBar.OverflowMode="Never" />
-                <Button x:Name="NextButton" ToolTip="Next Page" Click="NextButton_Click" ToolBar.OverflowMode="Never" />
-                <Button x:Name="LastButton" ToolTip="Last Page" Click="LastButton_Click" ToolBar.OverflowMode="Never" />
+                <Button x:Name="FirstButton" ToolTip="First Page" Click="FirstButton_Click" ToolBar.OverflowMode="Never" VerticalAlignment="Top"/>
+                <Button x:Name="BackButton" ToolTip="Previous Page" Click="BackButton_Click" ToolBar.OverflowMode="Never" VerticalAlignment="Top"/>
+                <Button x:Name="NextButton" ToolTip="Next Page" Click="NextButton_Click" ToolBar.OverflowMode="Never" VerticalAlignment="Top"/>
+                <Button x:Name="LastButton" ToolTip="Last Page" Click="LastButton_Click" ToolBar.OverflowMode="Never" VerticalAlignment="Top"/>
                 <Separator />
                 <Button x:Name="ZoomInButton" ToolTip="Zoom In" Click="ZoomInButton_Click" IsEnabled="true"
-                    ToolBar.OverflowMode="Never" />
+                    ToolBar.OverflowMode="Never" VerticalAlignment="Top"/>
                 <Button x:Name="ZoomOutButton" ToolTip="Zoom Out" Click="ZoomOutButton_Click" IsEnabled="true"
-                    ToolBar.OverflowMode="Never" />
+                    ToolBar.OverflowMode="Never" VerticalAlignment="Top"/>
 
             </ToolBar>
 
-            <ToolBar Grid.Row="0" Grid.Column="1" ToolBarTray.IsLocked="True" Loaded="ToolBar_Loaded" Margin="0"
+            <ToolBar Grid.Row="0" Grid.Column="1" ToolBarTray.IsLocked="True" Loaded="ToolBar_Loaded" Margin="0" Background="White"
                  Padding="0">
                 <Button x:Name="DesignButton" ToolTip="Design Report" Click="DesignButton_Click" IsEnabled="true"
-                    ToolBar.OverflowMode="Never" />
+                    ToolBar.OverflowMode="Never" VerticalAlignment="Top"/>
             </ToolBar>
 
             <Border BorderBrush="Gray" BorderThickness="0.75" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2">

+ 12 - 10
InABox.Reports/PreviewWindow.xaml.cs

@@ -22,6 +22,7 @@ using Image = System.Windows.Controls.Image;
 using SaveFileDialog = Microsoft.Win32.SaveFileDialog;
 using System;
 using InABox.Wpf;
+using TextBox = System.Windows.Controls.TextBox;
 
 namespace InABox.Reports
 {
@@ -43,8 +44,8 @@ namespace InABox.Reports
             _model = model;
             modelIsPopulated = false;
 
-            PrintButton.Content = GetImage(Properties.Resources.print);
-            SaveButton.Content = GetImage(Properties.Resources.save);
+            PrintButton.Content = ImageUtils.CreatePreviewWindowButtonContent("Print", Properties.Resources.print);
+            SaveButton.Content = ImageUtils.CreatePreviewWindowButtonContent("Save", Properties.Resources.save);
             foreach (var def in ReportUtils.ExportDefinitions)
             {
                 var button = new Button();
@@ -53,6 +54,7 @@ namespace InABox.Reports
                 else
                     button.Content = GetImage(def.Image);
 
+                button.VerticalAlignment = VerticalAlignment.Top;
                 button.Click += (o, e) =>
                 {
                     var data = ExportReport(def.Type);
@@ -62,13 +64,13 @@ namespace InABox.Reports
             }
 
             //EmailButton.Content = GetImage(Properties.Resources.email);
-            FirstButton.Content = GetImage(Properties.Resources.first);
-            BackButton.Content = GetImage(Properties.Resources.back);
-            NextButton.Content = GetImage(Properties.Resources.next);
-            LastButton.Content = GetImage(Properties.Resources.last);
-            ZoomInButton.Content = GetImage(Properties.Resources.zoomin);
-            ZoomOutButton.Content = GetImage(Properties.Resources.zoomout);
-            DesignButton.Content = GetImage(Properties.Resources.pencil);
+            FirstButton.Content = ImageUtils.CreatePreviewWindowButtonContent("First",Properties.Resources.first);
+            BackButton.Content = ImageUtils.CreatePreviewWindowButtonContent("Back", Properties.Resources.back);
+            NextButton.Content = ImageUtils.CreatePreviewWindowButtonContent("Next", Properties.Resources.next);
+            LastButton.Content = ImageUtils.CreatePreviewWindowButtonContent("Last", Properties.Resources.last);
+            ZoomInButton.Content = ImageUtils.CreatePreviewWindowButtonContent("Zoom In", Properties.Resources.zoomin);
+            ZoomOutButton.Content = ImageUtils.CreatePreviewWindowButtonContent("Zoom Out", Properties.Resources.zoomout);
+            DesignButton.Content = ImageUtils.CreatePreviewWindowButtonContent("Design", Properties.Resources.pencil);
 
             Loaded += PreviewWindow_Loaded;
 
@@ -400,6 +402,6 @@ namespace InABox.Reports
             new Client<ReportTemplate>().Save(_template, "Updated by Designer");
             _report = null;
             ShowPreview();
-        }
+        }       
     }
 }

+ 38 - 0
inabox.wpf/ImageUtils.cs

@@ -16,6 +16,7 @@ using Pen = System.Drawing.Pen;
 using PixelFormat = System.Drawing.Imaging.PixelFormat;
 using Point = System.Drawing.Point;
 using Size = System.Drawing.Size;
+using System.Windows.Controls;
 
 namespace InABox.WPF
 {
@@ -770,6 +771,43 @@ namespace InABox.WPF
 
             return rendered;
         }
+
+        public static ContentControl CreatePreviewWindowButtonContent(string caption, Bitmap bitmap)
+        {
+            Frame frame = new Frame();
+            frame.Padding = new Thickness(0);
+            frame.Margin = new Thickness(10, 10, 10, 5);
+
+            Grid grid = new Grid();
+            grid.Margin = new Thickness(0);
+            grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) });
+            grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Auto) });
+
+            var img = new System.Windows.Controls.Image
+            {
+                Source = bitmap.AsBitmapImage(),
+                Height = 32.0F,
+                Width = 32.0F,
+                Margin = new Thickness(10)
+            };
+            img.SetValue(Grid.RowProperty, 0);
+            img.Margin = new Thickness(0);
+            grid.Children.Add(img);
+
+            var txt = new System.Windows.Controls.TextBox();
+            txt.Text = caption;
+            txt.BorderThickness = new Thickness(0);
+            txt.TextWrapping = TextWrapping.WrapWithOverflow;
+            txt.MaxWidth = 120;
+            txt.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Center;
+            txt.SetValue(Grid.RowProperty, 1);
+
+            grid.Children.Add(txt);
+
+            frame.Content = grid;
+
+            return frame;
+        }
     }