Skip to content

Commit

Permalink
chore: misc changes
Browse files Browse the repository at this point in the history
  • Loading branch information
vatsashah45 committed Sep 24, 2024
1 parent d706f50 commit 92fb0d9
Show file tree
Hide file tree
Showing 4 changed files with 83 additions and 45 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,17 @@
xmlns:utu="using:Uno.Toolkit.UI"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:sample="using:Uno.Toolkit.Samples"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" RowDefinitions="Auto, *, Auto">

<TextBlock Grid.Row="0" Text="ZoomContentControl Sample"
Style="{StaticResource TitleLarge}" />

<utu:ZoomContentControl Grid.Row="1" x:Name="ZoomContent"
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<sample:SamplePageLayout x:Name="SamplePageLayout" IsDesignAgnostic="True">
<sample:SamplePageLayout.DesignAgnosticTemplate>
<DataTemplate>
<StackPanel>
<utu:ZoomContentControl Grid.Row="1"
x:Name="ZoomContent"
Width="400"
Height="300"
HorizontalAlignment="Center"
Expand All @@ -22,34 +24,37 @@
MinZoomLevel="0.5"
MaxZoomLevel="3.0"
IsZoomAllowed="True"
BorderBrush="Pink"
BorderThickness="2"
IsPanAllowed="True">

<StackPanel Orientation="Horizontal"
Spacing="12"
HorizontalAlignment="Center">
<Border BorderThickness="2"
BorderBrush="White">
<Image Source="ms-appx:///Assets/UnoLogo.png"
Height="101"
Width="75"
HorizontalAlignment="Left"
Margin="16,8,0,12" />
</Border>
</StackPanel>

</utu:ZoomContentControl>

<StackPanel Orientation="Horizontal"
Spacing="12"
HorizontalAlignment="Center">
<Border BorderThickness="2"
BorderBrush="White"
Padding="10">
<Image Source="ms-appx:///Assets/UnoLogo.png"
Height="101"
Width="75"
HorizontalAlignment="Center" />
</Border>
</StackPanel>

</utu:ZoomContentControl>

<StackPanel Grid.Row="2" Orientation="Horizontal" Spacing="12" HorizontalAlignment="Center" VerticalAlignment="Bottom">
<Button Content="Zoom In"
Click="OnZoomInClick" />
<Button Content="Zoom Out"
Click="OnZoomOutClick" />
<Button Content="Reset"
Click="OnResetClick" />
</StackPanel>


<StackPanel Grid.Row="2"
Orientation="Horizontal"
Spacing="12"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<Button x:Name="ZoomInButton" Content="Zoom In" />
<Button x:Name="ZoomOutButton" Content="Zoom Out" />
<Button x:Name="ResetButton" Content="Reset" />
</StackPanel>
</StackPanel>
</DataTemplate>
</sample:SamplePageLayout.DesignAgnosticTemplate>
</sample:SamplePageLayout>
</Grid>

</Page>
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Uno.Toolkit.Samples.Entities;
using Uno.Toolkit.UI;
using Windows.Foundation;
using Windows.Foundation.Collections;

Expand Down Expand Up @@ -33,31 +34,45 @@ namespace Uno.Toolkit.Samples.Content.Controls
[SamplePage(SampleCategory.Controls, "ZoomContentControl")]
public sealed partial class ZoomContentControlSamplePage : Page
{
private ZoomContentControl zoomControl;

public ZoomContentControlSamplePage()
{
this.InitializeComponent();
this.Loaded += (_, _) => ZoomContent.Initialize();
this.Loaded += (s, e) => SetUpOptions();
}

private void SetUpOptions()
{
zoomControl = SamplePageLayout.GetSampleChild<ZoomContentControl>(Design.Agnostic, "ZoomContent");
var zoomInButton = SamplePageLayout.GetSampleChild<Button>(Design.Agnostic, "ZoomInButton");
var zoomOutButton = SamplePageLayout.GetSampleChild<Button>(Design.Agnostic, "ZoomOutButton");
var resetButton = SamplePageLayout.GetSampleChild<Button>(Design.Agnostic, "ResetButton");

zoomInButton.Click += OnZoomInClick;
zoomOutButton.Click += OnZoomOutClick;
resetButton.Click += OnResetClick;
}

private void OnZoomInClick(object sender, RoutedEventArgs e)
{
if (ZoomContent.ZoomLevel < ZoomContent.MaxZoomLevel)
if (zoomControl.ZoomLevel < zoomControl.MaxZoomLevel)
{
ZoomContent.ZoomLevel += 0.2;
zoomControl.ZoomLevel += 0.2;
}
}

private void OnZoomOutClick(object sender, RoutedEventArgs e)
{
if (ZoomContent.ZoomLevel > ZoomContent.MinZoomLevel)
if (zoomControl.ZoomLevel > zoomControl.MinZoomLevel)
{
ZoomContent.ZoomLevel -= 0.2;
zoomControl.ZoomLevel -= 0.2;
}
}

private void OnResetClick(object sender, RoutedEventArgs e)
{
ZoomContent.Initialize();
zoomControl.Initialize();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,15 @@

<Style x:Key="DefaultZoomContentControlStyle"
TargetType="ctl:ZoomContentControl">
<Setter Property="Background"
Value="Transparent" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ctl:ZoomContentControl">
<Grid x:Name="PART_RootGrid"
Background="Transparent">
Background="{TemplateBinding Background}"
BorderThickness="{TemplateBinding BorderThickness}"
BorderBrush="{TemplateBinding BorderBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -473,12 +473,18 @@ public ZoomContentControl()

RegisterPropertyHandlers();

this.SizeChanged += ZoomContentControl_SizeChanged;
this.Loaded += OnLoaded;
this.SizeChanged += OnSizeChanged;
}

private void ZoomContentControl_SizeChanged(object sender, SizeChangedEventArgs args)
private void OnLoaded(object sender, RoutedEventArgs e)
{
if (AutoZoomToCanvasOnSizeChanged)
Centralize();
}

private void OnSizeChanged(object sender, SizeChangedEventArgs args)
{
if (IsLoaded && AutoZoomToCanvasOnSizeChanged)
{
ZoomToCanvas();
}
Expand Down Expand Up @@ -649,13 +655,20 @@ private void TryUpdateOffsets(double deltaX, double deltaY)
if ((deltaX > 0 && CanScrollLeft()) ||
(deltaX < 0 && CanScrollRight()))
{
HorizontalOffset += deltaX;
var offset = HorizontalOffset + deltaX;
var max = HorizontalMaxScroll * ZoomLevel;

HorizontalOffset = Math.Clamp(offset, 0, max);
}

if ((deltaY > 0 && CanScrollUp()) ||
(deltaY < 0 && CanScrollDown()))
{
VerticalOffset += deltaY;
var offset = VerticalOffset + deltaY;

var max = VerticalMaxScroll * ZoomLevel;

VerticalOffset = Math.Clamp(offset, 0, max);
}
}

Expand Down Expand Up @@ -760,7 +773,8 @@ public void ZoomToCanvas()
{
var vZoom = (AvailableSize.Height / ViewPortHeight);
var hZoom = (AvailableSize.Width / ViewPortWidth);
ZoomLevel = Math.Min(vZoom, hZoom);
var zoomLevel = Math.Min(vZoom, hZoom);
ZoomLevel = Math.Clamp(zoomLevel, MinZoomLevel, MaxZoomLevel);
Centralize();
}
}
Expand Down

0 comments on commit 92fb0d9

Please sign in to comment.