Skip to content

Commit 6909712

Browse files
author
reunion-maestro-bot
committed
Syncing content from committish ea1a4b2489560b61b03f50a3df798dd0358740ff
1 parent ff21f9b commit 6909712

File tree

1,784 files changed

+10072
-7836
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,784 files changed

+10072
-7836
lines changed

src/UpdateMockWinAppSDKPackage.csproj

Lines changed: 61 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -30,42 +30,70 @@
3030
<Import Project="Directory.Build.props" />
3131
<Import Project="$(NugetPackageDirectory)\MUXCustomBuildTasks.$(MuxCustomBuildTasksPackageVersion)\build\MUXCustomBuildTasks.targets" />
3232
<Import Project="Directory.Build.targets" />
33+
<PropertyGroup>
34+
<!-- OutDir doesn't contain the project name since this is only a partial project. We'll add it manually. -->
35+
<OutDir>$([System.IO.Path]::GetFullPath("$(OutDir)UpdateMockWinAppSDKPackage\"))</OutDir>
36+
<MockPackagePath>$(ProjectRoot)PackageStore\Microsoft.WindowsAppSDK.999.0.0-mock-$(WinUIVersion)-$(Platform)-$(Configuration).nupkg</MockPackagePath>
37+
</PropertyGroup>
3338
<Target Name="Rebuild" Condition="'$(BuildingInsideVisualStudio)' == 'true'">
3439
<CallTarget Targets="Clean" />
3540
<CallTarget Targets="Build" />
3641
</Target>
3742
<Target Name="Publish" />
38-
<Target Name="Clean" Condition="'$(BuildingInsideVisualStudio)' == 'true'" />
43+
<Target Name="Clean" Condition="'$(BuildingInsideVisualStudio)' == 'true'">
44+
<ItemGroup>
45+
<OutDirFiles Include="$(OutDir)**\*" />
46+
</ItemGroup>
47+
<Delete Files="$(MockPackagePath)" />
48+
<Delete Files="@(OutDirFiles)" />
49+
<RemoveDir Directories="$(OutDir)" />
50+
</Target>
3951
<Target Name="Build" Condition="'$(BuildingInsideVisualStudio)' == 'true'" DependsOnTargets="CheckIfUpdateIsRequired" />
40-
<Target Name="CheckIfUpdateIsRequired">
52+
<Target Name="SetProperties">
4153
<PropertyGroup>
4254
<PackagesDirectory>$(ProjectRoot)packages\</PackagesDirectory>
4355
<TempPackagesDirectory>$(OutDir)packages\</TempPackagesDirectory>
44-
<MicrosoftWindowsSDKBuildToolsPackageName>Microsoft.Windows.SDK.BuildTools</MicrosoftWindowsSDKBuildToolsPackageName>
45-
<MicrosoftWindowsSDKBuildToolsTempPackagesDir>$(TempPackagesDirectory)$(MicrosoftWindowsSDKBuildToolsPackageName).$(MicrosoftWindowsSDKBuildToolsNugetPackageVersion)</MicrosoftWindowsSDKBuildToolsTempPackagesDir>
46-
<WASDKPackageCppDirectoryName>Microsoft.WindowsAppSDK.$(WindowsAppSdkPackageVersion)</WASDKPackageCppDirectoryName>
47-
<WASDKPackageCSharpDirectoryName>microsoft.windowsappsdk\$(WindowsAppSdkPackageVersion)</WASDKPackageCSharpDirectoryName>
4856
<BuildMockPackageScriptPath>$(ProjectRoot)scripts\buildMockWinAppSdkPackage.ps1</BuildMockPackageScriptPath>
4957
<BuildMockPackageScriptParams>$(ProjectRoot) $(Platform) $(Configuration) $(WinUIVersion) 999.0.0-mock $(TempPackagesDirectory)</BuildMockPackageScriptParams>
5058
</PropertyGroup>
51-
<RunPowershellScript Path="$(BuildMockPackageScriptPath)" Parameters="$(BuildMockPackageScriptParams) -Fake">
52-
<Output TaskParameter="ExitCode" PropertyName="FakeScriptRunExitCode"/>
53-
</RunPowershellScript>
54-
<PropertyGroup>
55-
<UpdateIsRequired Condition="'$(FakeScriptRunExitCode)' == '1'">true</UpdateIsRequired>
56-
</PropertyGroup>
5759
</Target>
58-
<Target Name="UpdateMockWinAppSDKPackage" Condition="'$(UpdateIsRequired)' == 'true'" AfterTargets="Build">
60+
<Target Name="CopyDependencies" DependsOnTargets="SetProperties">
5961
<!-- First we'll create the package themselves and extract them to a temp folder using the Powershell script.
6062
Microsoft.Windows.SDK.BuildTools is a package we depend on that needs to be in the packages directory
6163
for dependency resolution. -->
64+
<PropertyGroup>
65+
<MicrosoftWindowsSDKBuildToolsPackageName>Microsoft.Windows.SDK.BuildTools</MicrosoftWindowsSDKBuildToolsPackageName>
66+
<MicrosoftWindowsSDKBuildToolsTempPackagesDir>$(TempPackagesDirectory)$(MicrosoftWindowsSDKBuildToolsPackageName).$(MicrosoftWindowsSDKBuildToolsNugetPackageVersion)</MicrosoftWindowsSDKBuildToolsTempPackagesDir>
67+
<WebView2PackageName>Microsoft.Web.WebView2</WebView2PackageName>
68+
<WebView2TempPackagesDir>$(TempPackagesDirectory)$(WebView2PackageName).$(WebView2Version)</WebView2TempPackagesDir>
69+
</PropertyGroup>
6270
<ItemGroup>
6371
<MicrosoftWindowsSDKBuildToolsFile Include="$(PackagesDirectory)$(MicrosoftWindowsSDKBuildToolsPackageName).$(MicrosoftWindowsSDKBuildToolsNugetPackageVersion)\**\*" />
72+
<WebView2File Include="$(PackagesDirectory)$(WebView2PackageName).$(WebView2Version)\**\*" />
6473
</ItemGroup>
6574
<Message Text="Copying $(MicrosoftWindowsSDKBuildToolsPackageName), which is a package we depend on for WinAppSDK package creation." Condition="!Exists('$(MicrosoftWindowsSDKBuildToolsTempPackagesDir)')" />
6675
<Copy SourceFiles="@(MicrosoftWindowsSDKBuildToolsFile)" DestinationFiles="@(MicrosoftWindowsSDKBuildToolsFile->'$(MicrosoftWindowsSDKBuildToolsTempPackagesDir)\%(RecursiveDir)\%(Filename)%(Extension)')" Condition="!Exists('$(MicrosoftWindowsSDKBuildToolsTempPackagesDir)')" />
67-
<RunPowershellScript Path="$(ProjectRoot)scripts\buildMockWinAppSdkPackage.ps1" Parameters="$(ProjectRoot) $(Platform) $(Configuration) $(WinUIVersion) 999.0.0-mock $(TempPackagesDirectory)" />
68-
<!-- Next we'll install the packages. Visual Studio complains if we completely delete and regenerate in-use NuGet package folders,
76+
<Message Text="Copying $(WebView2PackageName), which is a package we depend on for WinAppSDK package creation." Condition="!Exists('$(WebView2TempPackagesDir)')" />
77+
<Copy SourceFiles="@(WebView2File)" DestinationFiles="@(WebView2File->'$(WebView2TempPackagesDir)\%(RecursiveDir)\%(Filename)%(Extension)')" Condition="!Exists('$(WebView2TempPackagesDir)')" />
78+
</Target>
79+
<Target Name="CheckIfUpdateIsRequired" DependsOnTargets="CopyDependencies">
80+
<!-- We'll only check whether an update is required if the nupkg already exists. Otherwise, we know we need to create it. -->
81+
<RunPowershellScript Path="$(BuildMockPackageScriptPath)" Parameters="$(BuildMockPackageScriptParams) -Fake" Condition="Exists('$(MockPackagePath)')">
82+
<Output TaskParameter="ExitCode" PropertyName="FakeScriptRunExitCode"/>
83+
</RunPowershellScript>
84+
<PropertyGroup>
85+
<UpdateIsRequired Condition="'$(FakeScriptRunExitCode)' == '1' or !Exists('$(MockPackagePath)')">true</UpdateIsRequired>
86+
</PropertyGroup>
87+
</Target>
88+
<Target Name="UpdateMockWinAppSDKPackage" Condition="'$(UpdateIsRequired)' == 'true'" AfterTargets="Build" DependsOnTargets="CopyDependencies">
89+
<!-- We first need to clear the AppXContents directory for the WindowsAppSDK mock package staging ground, since otherwise a Clean will delete files we need. -->
90+
<PropertyGroup>
91+
<WASDKPackageCppDirectoryName>Microsoft.WindowsAppSDK.$(WindowsAppSdkPackageVersion)</WASDKPackageCppDirectoryName>
92+
<WASDKPackageCSharpDirectoryName>microsoft.windowsappsdk\$(WindowsAppSdkPackageVersion)</WASDKPackageCSharpDirectoryName>
93+
</PropertyGroup>
94+
<!-- Now we can build the mock WindowsAppSDK package. -->
95+
<RunPowershellScript Path="$(BuildMockPackageScriptPath)" Parameters="$(BuildMockPackageScriptParams)" />
96+
<!-- Finally, we'll install the packages. Visual Studio complains if we completely delete and regenerate in-use NuGet package folders,
6997
so instead of that, if the package folders already exist, we'll just copy over all of the lib, runtimes, and MSIX files.
7098
This ensures that the newest built files get used correctly without breaking any Visual Studio NuGet integration. -->
7199
<ItemGroup>
@@ -91,6 +119,23 @@
91119
</ItemGroup>
92120
<Copy SourceFiles="@(WASDKPackageTempFileToCopy)" DestinationFolder="%(CppTargetDirectory)%(RecursiveDir)" />
93121
<Copy SourceFiles="@(WASDKPackageTempFileToCopy)" DestinationFolder="%(CSharpTargetDirectory)%(RecursiveDir)" />
122+
123+
<!-- This project needs an output file that changes when the mock WinAppSDK package is updated
124+
so that other projects that depend on this one will know to rebuild. -->
125+
<Touch Files="$(OutDir).MockWinAppSdkPackageUpdated" AlwaysCreate="true" />
126+
127+
<ItemGroup>
128+
<FileWrites Include="$(MockPackagePath)" />
129+
<FileWrites Include="$(OutDir)**\*" />
130+
</ItemGroup>
131+
</Target>
132+
<ItemGroup>
133+
<Content Include="$(OutDir).MockWinAppSdkPackageUpdated" CopyToOutputDirectory="PreserveNewest" />
134+
</ItemGroup>
135+
<Target Name="GetUpdatedMarkerFilePath" Returns="@(UpdatedMarkerFilePath)">
136+
<ItemGroup>
137+
<UpdatedMarkerFilePath Include="$(OutDir).MockWinAppSdkPackageUpdated" />
138+
</ItemGroup>
94139
</Target>
95140
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|ARM64'" />
96141
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|ARM64'" />
@@ -109,6 +154,7 @@
109154
<!-- Define targets required for MSBuild's project-to-project protocol -->
110155
<Target Name="GetNativeManifest" />
111156
<Target Name="GetCopyToOutputDirectoryItems" />
157+
<Target Name="GetCopyToPublishDirectoryItems" />
112158
<Target Name="GetTargetPathWithTargetPlatformMoniker" />
113159
<Target Name="GetPackagingOutputs" />
114160
</Project>
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT License. See LICENSE in the project root for license information. -->
3+
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
4+
<ItemGroup>
5+
<ProjectReference Include="$(ProjectRoot)UpdateMockWinAppSDKPackage.csproj" ReferenceOutputAssembly="false" Condition="'$(BuildingInsideVisualStudio)' == 'true'" />
6+
</ItemGroup>
7+
8+
<Target Name="EnsureBuildAfterUpdatingMockWinAppSDK" BeforeTargets="Build" Condition="'$(BuildingInsideVisualStudio)' == 'true'" />
9+
<Target Name="GetMockWinAppSDKUpdatedMarkerFilePath" BeforeTargets="EnsureBuildAfterUpdatingMockWinAppSDK" Condition="'$(BuildingInsideVisualStudio)' == 'true'">
10+
<MSBuild Projects="$(ProjectRoot)UpdateMockWinAppSDKPackage.csproj" Targets="GetUpdatedMarkerFilePath">
11+
<Output TaskParameter="TargetOutputs" ItemName="UpdatedMarkerFilePath" />
12+
</MSBuild>
13+
</Target>
14+
<Target Name="AddMockWinAppSDKUpdatedMarkerFilePathToContent" AfterTargets="EnsureBuildAfterUpdatingMockWinAppSDK" Condition="'$(BuildingInsideVisualStudio)' == 'true'" Inputs="@(UpdatedMarkerFilePath)" Outputs="@(UpdatedMarkerFilePath->'$(OutDir)%(Filename)%(Extension)')">
15+
<ItemGroup>
16+
<Content Include="@(UpdatedMarkerFilePath)" />
17+
</ItemGroup>
18+
</Target>
19+
</Project>

src/controls/dev/AnimatedIcon/TestUI/AnimatedIconHost.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
namespace MUXControlsTestApp
1818
{
19-
public sealed class AnimatedIconHost : Button
19+
public sealed partial class AnimatedIconHost : Button
2020
{
2121
Border m_iconPresenter;
2222
TextBlock m_transitionTextBlock;

src/controls/dev/AnimatedIcon/TestUI/BrightnessSun.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ namespace AnimatedVisuals
5757
// Frame rate: 25 fps
5858
// Frame count: 40
5959
// Duration: 1600.0 mS
60-
sealed class BrightnessSun
60+
sealed partial class BrightnessSun
6161
: Microsoft.UI.Xaml.Controls.IAnimatedVisualSource, Microsoft.UI.Xaml.Controls.IAnimatedVisualSource2
6262
{
6363
// Animation duration: 1.600 seconds.
@@ -127,7 +127,7 @@ public void SetScalarProperty(string propertyName, double value)
127127
{
128128
}
129129

130-
sealed class BrightnessSun_AnimatedVisual : Microsoft.UI.Xaml.Controls.IAnimatedVisual
130+
sealed partial class BrightnessSun_AnimatedVisual : Microsoft.UI.Xaml.Controls.IAnimatedVisual
131131
{
132132
const long c_durationTicks = 16000000;
133133
readonly Compositor _c;

src/controls/dev/AnimatedIcon/TestUI/ColorToSolidColorBrushConverter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
namespace MUXControlsTestApp
99
{
10-
class ColorToSolidColorBrushConverter : IValueConverter
10+
partial class ColorToSolidColorBrushConverter : IValueConverter
1111
{
1212
public object Convert(object value, Type targetType, object parameter, string language)
1313
{

src/controls/dev/AnimatedIcon/TestUI/DoubleToStringConverter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
namespace MUXControlsTestApp
77
{
8-
class DoubleToStringConverter : IValueConverter
8+
partial class DoubleToStringConverter : IValueConverter
99
{
1010
public object Convert(object value, Type targetType, object parameter, string language)
1111
{

src/controls/dev/AnimatedIcon/TestUI/MockIRichAnimatedIconSource.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
namespace MUXControlsTestApp
1010
{
11-
class MockIAnimatedIconSource2 : IAnimatedVisualSource2
11+
partial class MockIAnimatedIconSource2 : IAnimatedVisualSource2
1212
{
1313
Dictionary<string, double> markers = new Dictionary<string, double>();
1414

src/controls/dev/AnimatedIcon/TestUI/ToggleAnimatedIconHost.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
namespace MUXControlsTestApp
1818
{
19-
public sealed class ToggleAnimatedIconHost : CheckBox
19+
public sealed partial class ToggleAnimatedIconHost : CheckBox
2020
{
2121
Border m_iconPresenter;
2222
TextBlock m_transitionTextBlock;

src/controls/dev/AnimatedVisualPlayer/AnimatedVisualPlayer.cpp

Lines changed: 40 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -323,25 +323,31 @@ AnimatedVisualPlayer::AnimatedVisualPlayer()
323323

324324
// Subscribe to suspending, resuming, and visibility events so we can pause the animation if it's
325325
// definitely not visible.
326-
m_suspendingRevoker = winrt::Application::Current().Suspending(winrt::auto_revoke, [weakThis{ get_weak() }](
326+
// Previously we used get_weak() here, but we found the potential to hit a
327+
// refcounting problem where in some scenarios the outer object gets
328+
// an extra Release() in this process.
329+
auto weakThis {winrt::make_weak(static_cast<winrt::AnimatedVisualPlayer>(*this))};
330+
m_suspendingRevoker = winrt::Application::Current().Suspending(winrt::auto_revoke, [weakThis](
327331
auto const& /*sender*/,
328332
auto const& /*e*/)
329333
{
330334
if (auto strongThis = weakThis.get())
331335
{
332-
strongThis->OnHiding();
336+
AnimatedVisualPlayer* rawThis = winrt::get_self<AnimatedVisualPlayer>(strongThis);
337+
rawThis->OnHiding();
333338
}
334339
});
335340

336-
m_resumingRevoker = winrt::Application::Current().Resuming(winrt::auto_revoke, [weakThis{ get_weak() }](
341+
m_resumingRevoker = winrt::Application::Current().Resuming(winrt::auto_revoke, [weakThis](
337342
auto const& /*sender*/,
338343
auto const& /*e*/)
339344
{
340345
if (auto strongThis = weakThis.get())
341346
{
342347
if (winrt::CoreWindow::GetForCurrentThread().Visible())
343348
{
344-
strongThis->OnUnhiding();
349+
AnimatedVisualPlayer* rawThis = winrt::get_self<AnimatedVisualPlayer>(strongThis);
350+
rawThis->OnUnhiding();
345351
}
346352
}
347353
});
@@ -398,27 +404,31 @@ void AnimatedVisualPlayer::OnLoaded(winrt::IInspectable const& /*sender*/, winrt
398404
m_isUnloaded = false;
399405
}
400406

401-
402-
m_xamlRootChangedRevoker = this->XamlRoot().Changed(winrt::auto_revoke, [weakThis{ get_weak() }](
407+
// Previously we used get_weak() here, but we found the potential to hit a
408+
// refcounting problem where in some scenarios the outer object gets
409+
// an extra Release() in this process.
410+
auto weakThis {winrt::make_weak(static_cast<winrt::AnimatedVisualPlayer>(*this))};
411+
m_xamlRootChangedRevoker = this->XamlRoot().Changed(winrt::auto_revoke, [weakThis](
403412
auto const& /*sender*/,
404413
auto const& args)
405414
{
406415
if (auto strongThis = weakThis.get())
407416
{
408-
auto xamlRoot = strongThis->XamlRoot();
417+
AnimatedVisualPlayer* rawThis = winrt::get_self<AnimatedVisualPlayer>(strongThis);
418+
auto xamlRoot = rawThis->XamlRoot();
409419
bool hostVisibility = xamlRoot.IsHostVisible();
410-
if (hostVisibility != strongThis->m_isHostVisible)
420+
if (hostVisibility != rawThis->m_isHostVisible)
411421
{
412-
strongThis->m_isHostVisible = hostVisibility;
422+
rawThis->m_isHostVisible = hostVisibility;
413423
if (hostVisibility)
414424
{
415425
// Transition from invisible to visible.
416-
strongThis->OnUnhiding();
426+
rawThis->OnUnhiding();
417427
}
418428
else
419429
{
420430
// Transition from visible to invisible.
421-
strongThis->OnHiding();
431+
rawThis->OnHiding();
422432
}
423433

424434
}
@@ -832,29 +842,35 @@ void AnimatedVisualPlayer::DestroyAnimations() {
832842

833843
// Call RequestCommit to make sure that previous compositor calls complete before destroying animations.
834844
// RequestCommitAsync is available only for RS4+
845+
// Previously we used get_weak() here, but we found the potential to hit a
846+
// refcounting problem where in some scenarios the outer object gets
847+
// an extra Release() in this process.
848+
auto weakThis {winrt::make_weak(static_cast<winrt::AnimatedVisualPlayer>(*this))};
835849
m_rootVisual.Compositor().RequestCommitAsync().Completed(
836-
[me_weak = get_weak(), createAnimationsCounter = m_createAnimationsCounter](auto, auto) {
837-
auto me = me_weak.get();
850+
[weakThis, createAnimationsCounter = m_createAnimationsCounter](auto, auto) {
851+
auto strongThis = weakThis.get();
838852

839-
if (!me)
853+
if (!strongThis)
840854
{
841855
return;
842856
}
843857

858+
AnimatedVisualPlayer* rawThis = winrt::get_self<AnimatedVisualPlayer>(strongThis);
859+
844860
// Check if there was any CreateAnimations call after DestroyAnimations.
845861
// We should not destroy animations in this case,
846862
// they will be destroyed by the following DestroyAnimations call.
847-
if (createAnimationsCounter != me->m_createAnimationsCounter) {
863+
if (createAnimationsCounter != rawThis->m_createAnimationsCounter) {
848864
return;
849865
}
850866

851867
// Check if current animated visual supports destroyig animations.
852-
if (const auto& animatedVisual = me->m_animatedVisual.get())
868+
if (const auto& animatedVisual = rawThis->m_animatedVisual.get())
853869
{
854870
if (const auto& animatedVisual2 = animatedVisual.try_as<winrt::IAnimatedVisual2>())
855871
{
856872
animatedVisual2.DestroyAnimations();
857-
me->m_isAnimationsCreated = false;
873+
rawThis->m_isAnimationsCreated = false;
858874
}
859875
}
860876
}
@@ -884,14 +900,19 @@ void AnimatedVisualPlayer::OnSourcePropertyChanged(
884900
if (auto newDynamicSource = newSource.try_as<winrt::IDynamicAnimatedVisualSource>())
885901
{
886902
// Connect to the update notifications of the new source.
903+
// Previously we used get_weak() here, but we found the potential to hit a
904+
// refcounting problem where in some scenarios the outer object gets
905+
// an extra Release() in this process.
906+
auto weakThis {winrt::make_weak(static_cast<winrt::AnimatedVisualPlayer>(*this))};
887907
m_dynamicAnimatedVisualInvalidatedRevoker
888-
= newDynamicSource.AnimatedVisualInvalidated(winrt::auto_revoke, [weakThis{ get_weak() }](
908+
= newDynamicSource.AnimatedVisualInvalidated(winrt::auto_revoke, [weakThis](
889909
auto const& /*sender*/,
890910
auto const& /*e*/)
891911
{
892912
if (auto strongThis = weakThis.get())
893913
{
894-
strongThis->UpdateContent();
914+
AnimatedVisualPlayer* rawThis = winrt::get_self<AnimatedVisualPlayer>(strongThis);
915+
rawThis->UpdateContent();
895916
}
896917
});
897918
}

src/controls/dev/AnimatedVisualPlayer/TestUI/AnimatedVisualPlayerPage.xaml.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
namespace MUXControlsTestApp
2222
{
23-
public class FallbackGrid : Microsoft.UI.Xaml.Controls.Grid
23+
public partial class FallbackGrid : Microsoft.UI.Xaml.Controls.Grid
2424
{
2525
internal const int RectangleWidth = 100;
2626
internal const int RectangleHeight = 100;

src/controls/dev/AnimatedVisualPlayer/TestUI/LottieLogo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ namespace AnimatedVisuals
5959
// Frame rate: 30 fps
6060
// Frame count: 179
6161
// Duration: 5966.7 mS
62-
public sealed class LottieLogo
62+
public sealed partial class LottieLogo
6363
: Microsoft.UI.Xaml.Controls.IAnimatedVisualSource
6464
{
6565
// Animation duration: 5.967 seconds.
@@ -131,7 +131,7 @@ public void SetScalarProperty(string propertyName, double value)
131131
{
132132
}
133133

134-
sealed class LottieLogo_AnimatedVisual : Microsoft.UI.Xaml.Controls.IAnimatedVisual2
134+
sealed partial class LottieLogo_AnimatedVisual : Microsoft.UI.Xaml.Controls.IAnimatedVisual2
135135
{
136136
const long c_durationTicks = 59666666;
137137
readonly Compositor _c;

0 commit comments

Comments
 (0)