Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --SOLUTION 1--
- <Viewbox x:Name="questionViewBox" Stretch="Uniform" Grid.Row="13" Grid.RowSpan="3" Grid.ColumnSpan="8" Grid.Column="4" Panel.ZIndex="1" StretchDirection="DownOnly">
- <TextBlock x:Name="questionBox" Text="{Binding Question}" VerticalAlignment="Center" FontSize="{Binding FontSizeQuestion}"/>
- </Viewbox>
- in the logic:
- if (model.Question.Length > 15)
- model.FontSizeQuestion = 8;
- else
- model.FontSizeQuestion = 15;
- --SOLUTION2--
- questionViewBox.MaxWidth = questionBox.ActualWidth * 2d;
- questionViewBox.MaxHeight = questionBox.ActualHeight * 2d;
- --SOLUTION3--
- The extension methods but could not get it to work:
- public static class ViewboxExtensions
- {
- public static readonly DependencyProperty MaxZoomFactorProperty =
- DependencyProperty.Register("MaxZoomFactor", typeof(double), typeof(ViewboxExtensions), new PropertyMetadata(1.0, OnMaxZoomFactorChanged));
- private static void OnMaxZoomFactorChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
- {
- var viewbox = d as Viewbox;
- if (viewbox == null)
- return;
- viewbox.Loaded += OnLoaded;
- }
- private static void OnLoaded(object sender, RoutedEventArgs e)
- {
- var viewbox = sender as Viewbox;
- var child = viewbox?.Child as FrameworkElement;
- if (child == null)
- return;
- child.SizeChanged += (o, args) => CalculateMaxSize(viewbox);
- CalculateMaxSize(viewbox);
- }
- private static void CalculateMaxSize(Viewbox viewbox)
- {
- var child = viewbox.Child as FrameworkElement;
- if (child == null)
- return;
- viewbox.MaxWidth = child.ActualWidth * GetMaxZoomFactor(viewbox);
- viewbox.MaxHeight = child.ActualHeight * GetMaxZoomFactor(viewbox);
- }
- public static void SetMaxZoomFactor(DependencyObject d, double value)
- {
- d.SetValue(MaxZoomFactorProperty, value);
- }
- public static double GetMaxZoomFactor(DependencyObject d)
- {
- return (double)d.GetValue(MaxZoomFactorProperty);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement