Advertisement
Guest User

Untitled

a guest
Sep 18th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.08 KB | None | 0 0
  1. --SOLUTION 1--
  2. <Viewbox x:Name="questionViewBox" Stretch="Uniform" Grid.Row="13" Grid.RowSpan="3" Grid.ColumnSpan="8" Grid.Column="4" Panel.ZIndex="1" StretchDirection="DownOnly">
  3.             <TextBlock x:Name="questionBox" Text="{Binding Question}" VerticalAlignment="Center" FontSize="{Binding FontSizeQuestion}"/>
  4. </Viewbox>
  5.  
  6. in the logic:
  7. if (model.Question.Length > 15)
  8.     model.FontSizeQuestion = 8;
  9. else
  10.     model.FontSizeQuestion = 15;
  11.  
  12. --SOLUTION2--
  13. questionViewBox.MaxWidth = questionBox.ActualWidth * 2d;
  14. questionViewBox.MaxHeight = questionBox.ActualHeight * 2d;
  15.  
  16. --SOLUTION3--
  17. The extension methods but could not get it to work:
  18. public static class ViewboxExtensions
  19. {
  20.     public static readonly DependencyProperty MaxZoomFactorProperty =
  21.         DependencyProperty.Register("MaxZoomFactor", typeof(double), typeof(ViewboxExtensions), new PropertyMetadata(1.0, OnMaxZoomFactorChanged));
  22.  
  23.     private static void OnMaxZoomFactorChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
  24.     {
  25.         var viewbox = d as Viewbox;
  26.         if (viewbox == null)
  27.             return;
  28.         viewbox.Loaded += OnLoaded;
  29.     }
  30.  
  31.     private static void OnLoaded(object sender, RoutedEventArgs e)
  32.     {
  33.         var viewbox = sender as Viewbox;
  34.         var child = viewbox?.Child as FrameworkElement;
  35.         if (child == null)
  36.             return;
  37.  
  38.         child.SizeChanged += (o, args) => CalculateMaxSize(viewbox);
  39.         CalculateMaxSize(viewbox);
  40.     }
  41.  
  42.     private static void CalculateMaxSize(Viewbox viewbox)
  43.     {
  44.         var child = viewbox.Child as FrameworkElement;
  45.         if (child == null)
  46.             return;
  47.         viewbox.MaxWidth = child.ActualWidth * GetMaxZoomFactor(viewbox);
  48.         viewbox.MaxHeight = child.ActualHeight * GetMaxZoomFactor(viewbox);
  49.     }
  50.  
  51.     public static void SetMaxZoomFactor(DependencyObject d, double value)
  52.     {
  53.         d.SetValue(MaxZoomFactorProperty, value);
  54.     }
  55.  
  56.     public static double GetMaxZoomFactor(DependencyObject d)
  57.     {
  58.         return (double)d.GetValue(MaxZoomFactorProperty);
  59.     }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement