Advertisement
Guest User

wpf window size fix.

a guest
Feb 17th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.31 KB | None | 0 0
  1.         public MainWindow()
  2.         {
  3.             //something...
  4.             ///////////////
  5.             ///////////////
  6.             //add below
  7.             this.Navigated += MainWindow_Navigated;
  8.             this.ResizeMode = ResizeMode.CanResizeWithGrip;
  9.         }
  10.         protected override void OnRenderSizeChanged(SizeChangedInfo sizeInfo)
  11.         {
  12.             double aspectRatio = (1440.0 / 810.0);
  13.             if (sizeInfo.WidthChanged)
  14.             {
  15.                 this.Width = sizeInfo.NewSize.Height * aspectRatio;
  16.             }
  17.             else
  18.             {
  19.                 this.Height = sizeInfo.NewSize.Width * aspectRatio;
  20.             }
  21.  
  22.             base.OnRenderSizeChanged(sizeInfo);
  23.  
  24.             FixSize(sizeInfo.NewSize);
  25.         }
  26.  
  27.         private void MainWindow_Navigated(object sender, NavigationEventArgs e)
  28.         {
  29.             FixSize(this.RenderSize);
  30.         }
  31.  
  32.         private void FixSize(Size size)
  33.         {
  34.             double perX = size.Width / 1440.0;
  35.             double perY = size.Height / 810.0;
  36.  
  37.             var content = this.NavigationService.Content;
  38.  
  39.  
  40.             if (content != null && content is System.Windows.Controls.Page)
  41.                 (content as System.Windows.Controls.Page).LayoutTransform = new System.Windows.Media.ScaleTransform() { CenterX = .5, CenterY = .5, ScaleX = perX, ScaleY = perY };
  42.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement