Skip to content

Commit 8158dc8

Browse files
committed
still broken animatino
1 parent 19fe426 commit 8158dc8

2 files changed

Lines changed: 24 additions & 19 deletions

File tree

IRCameraViewShared/CameraPage.cs

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
using System.Threading.Tasks;
1919
using Windows.UI.Core;
2020
using System.Collections.ObjectModel;
21+
using System.Numerics;
2122

2223

2324

@@ -105,36 +106,40 @@ void ReloadDevices()
105106

106107
}
107108

108-
void EnableMargin()
109+
void AnimateImageGrid(double targetWidth, double targetHeight, double offsetX, double offsetY, double durationMs = 300)
109110
{
110111
var visual = ElementCompositionPreview.GetElementVisual(ImageGrid);
111112
var compositor = visual.Compositor;
112113

113-
// Calculate offset you want (simulates Margin change)
114-
var targetOffset = new System.Numerics.Vector3(
115-
x: (float)(20 + PhotoButton.ActualWidth * 2),
116-
y: (float)(32 + 20),
117-
z: 0f);
114+
var offsetAnim = compositor.CreateVector3KeyFrameAnimation();
115+
offsetAnim.InsertKeyFrame(1f, new Vector3((float)offsetX, (float)offsetY, 0));
116+
offsetAnim.Duration = TimeSpan.FromMilliseconds(durationMs);
117+
visual.StartAnimation(nameof(visual.Offset), offsetAnim);
118+
119+
var sizeAnim = compositor.CreateVector2KeyFrameAnimation();
120+
sizeAnim.InsertKeyFrame(1f, new Vector2((float)targetWidth, (float)targetHeight));
121+
sizeAnim.Duration = TimeSpan.FromMilliseconds(durationMs);
122+
visual.StartAnimation("Size", sizeAnim);
123+
124+
ImageViewbox.Stretch = (targetWidth > targetHeight) ? Stretch.Uniform : Stretch.UniformToFill;
125+
}
118126

119-
var animation = compositor.CreateVector3KeyFrameAnimation();
120-
animation.InsertKeyFrame(1f, targetOffset);
121-
animation.Duration = TimeSpan.FromMilliseconds(300);
127+
void EnableMargin()
128+
{
129+
double newWidth = ImageGrid.ActualWidth - 20 - PhotoButton.ActualWidth - PhotoButton.Margin.Left; // example
130+
double newHeight = ImageGrid.ActualHeight - 40 - SettingsViewer.ActualHeight;
122131

123-
visual.StartAnimation(nameof(visual.Offset), animation);
132+
double offsetX = -20;
133+
double offsetY = 32 + 20;
134+
135+
AnimateImageGrid(newWidth, newHeight, offsetX, offsetY);
124136

125137
ImageViewbox.Stretch = Stretch.Uniform;
126138
}
127139

128140
void DisableMargin()
129141
{
130-
var visual = ElementCompositionPreview.GetElementVisual(ImageGrid);
131-
var compositor = visual.Compositor;
132-
133-
var animation = compositor.CreateVector3KeyFrameAnimation();
134-
animation.InsertKeyFrame(1f, new System.Numerics.Vector3(0, 0, 0));
135-
animation.Duration = TimeSpan.FromMilliseconds(300);
136-
137-
visual.StartAnimation(nameof(visual.Offset), animation);
142+
AnimateImageGrid(ImageGrid.ActualWidth, ImageGrid.ActualHeight, 0, 0);
138143

139144
ImageViewbox.Stretch = Stretch.UniformToFill;
140145
}

IRCameraViewShared/CameraPage.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
</Button.Background>
3232
</Button>
3333
</Grid>
34-
<ScrollViewer Grid.Row="1" HorizontalScrollBarVisibility="Auto" HorizontalScrollMode="Enabled">
34+
<ScrollViewer x:Name="SettingsViewer" Grid.Row="1" HorizontalScrollBarVisibility="Auto" HorizontalScrollMode="Enabled">
3535
<Grid Margin="20">
3636
<Grid.ColumnDefinitions>
3737
<ColumnDefinition Width="Auto"/>

0 commit comments

Comments
 (0)